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§
Sourcefn loan_uninit_layout() -> Result<PayloadLayout, UWireError>
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.
Sourcefn loan_uninit_payload<'a>(
dst: LoanedPayloadUninitMut<'a>,
) -> Result<LoanedUninitPayload<'a, T>, UWireError>
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.