#[repr(u8)]pub enum Payload<'payload> {
Outgoing {
ptr: PtrConst,
shape: &'static Shape,
_lt: PhantomData<&'payload ()>,
},
Incoming(&'payload [u8]),
}Expand description
A payload — arguments for a request, or return type for a response.
Uses #[facet(opaque = PayloadAdapter)] so that format crates handle
serialization/deserialization through the adapter contract:
- Send path:
serialize_mapextracts(ptr, shape)fromBorrowedorOwned. - Recv path:
deserialize_buildproducesRawBorrowedorRawOwned.
Variants§
Outgoing
Outgoing: type-erased pointer to caller-owned memory + its Shape.
Incoming(&'payload [u8])
Incoming: raw bytes borrowed from the backing (zero-copy).
Implementations§
Source§impl<'payload> Payload<'payload>
impl<'payload> Payload<'payload>
Sourcepub fn outgoing<T: Facet<'payload>>(value: &'payload T) -> Self
pub fn outgoing<T: Facet<'payload>>(value: &'payload T) -> Self
Construct an outgoing borrowed payload from a concrete value.
Sourcepub unsafe fn outgoing_unchecked(ptr: PtrConst, shape: &'static Shape) -> Self
pub unsafe fn outgoing_unchecked(ptr: PtrConst, shape: &'static Shape) -> Self
Construct an outgoing owned payload from a raw pointer + shape.
§Safety
The pointed value must remain alive until serialization has completed.
Trait Implementations§
impl<'payload> Send for Payload<'payload>
Auto Trait Implementations§
impl<'payload> Freeze for Payload<'payload>
impl<'payload> RefUnwindSafe for Payload<'payload>
impl<'payload> !Sync for Payload<'payload>
impl<'payload> Unpin for Payload<'payload>
impl<'payload> UnsafeUnpin for Payload<'payload>
impl<'payload> UnwindSafe for Payload<'payload>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more