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

Trait LoanUninitPayload

Source
pub unsafe trait LoanUninitPayload<T>: PayloadCodec {
    // Required methods
    fn loan_uninit_layout() -> Result<PayloadLayout, UWireError>;
    fn loan_uninit_payload<'a>(
        dst: LoanedPayloadUninitMut<'a>,
    ) -> Result<LoanedUninitPayload<'a, T>, UWireError>;
}
Expand description

Initializes a typed value directly in uninitialized transmit storage.

§Safety

Implementors must guarantee that LoanUninitPayload::loan_uninit_payload validates the destination range and only returns a slot when the range is one uniquely borrowed allocation, has the exact layout returned by LoanUninitPayload::loan_uninit_layout, and is valid for writes of one MaybeUninit<T>.

Required Methods§

Source

fn loan_uninit_layout() -> Result<PayloadLayout, UWireError>

Returns the exact layout required for a typed uninitialized transmit loan.

§Errors

Returns an error if this codec cannot loan T into uninitialized TX storage.

Source

fn loan_uninit_payload<'a>( dst: LoanedPayloadUninitMut<'a>, ) -> Result<LoanedUninitPayload<'a, T>, UWireError>

Validates dst and returns an uninitialized typed payload slot.

§Errors

Returns an error if dst does not have the required length or alignment.

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§