Preview of the proposed up-rust native-frame-model branch (up-rust b6b99c6d, up-spec f0e9b17) — not released documentation. branch · write-up

Trait ULoanedContiguousZeroCopyRxFrame

Source
pub trait ULoanedContiguousZeroCopyRxFrame: UZeroCopyRxLease {
    // Required method
    fn loaned_contiguous_payload(&self) -> Result<LoanedPayload<'_>, UWireError>;

    // Provided methods
    fn payload_loan_provenance(
        &self,
    ) -> Result<PayloadLoanProvenance, UWireError> { ... }
    fn try_loaned_contiguous_payload(&self) -> Result<&[u8], UWireError> { ... }
    fn borrow_stable_payload<T>(&self) -> Result<&T, UWireError>
       where T: StablePayload { ... }
    fn borrow_payload_as<C, T>(&self) -> Result<&T, UWireError>
       where C: BorrowPayload<T> { ... }
}
Expand description

Role: a receive lease over contiguous loan-backed storage; lets typed payloads be borrowed without copying — see the trait map.

Receive lease that can expose a contiguous payload from loan-backed storage.

Required Methods§

Source

fn loaned_contiguous_payload(&self) -> Result<LoanedPayload<'_>, UWireError>

Returns one contiguous loan-backed application payload view.

Implementations must not allocate, copy, or coalesce payload bytes to satisfy this method.

Provided Methods§

Source

fn payload_loan_provenance(&self) -> Result<PayloadLoanProvenance, UWireError>

Returns diagnostic provenance for successful loaned payload borrows.

Source

fn try_loaned_contiguous_payload(&self) -> Result<&[u8], UWireError>

Returns only loan-backed contiguous payload bytes.

Source

fn borrow_stable_payload<T>(&self) -> Result<&T, UWireError>
where T: StablePayload,

Borrows one stable-container value from loan-backed contiguous storage.

Source

fn borrow_payload_as<C, T>(&self) -> Result<&T, UWireError>
where C: BorrowPayload<T>,

Borrows one typed value from loan-backed contiguous storage using codec C.

This is the low-level codec-selected receive form. Selected-wire receive wrappers expose a wire-selected borrow_payload helper so ordinary callers do not need to name C.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§