Skip to main content

Encode

Trait Encode 

Source
pub unsafe trait Encode<T, D>: Sized{
    // Required method
    unsafe fn encode(
        self,
        encoder: &mut Encoder<'_, D>,
        offset: usize,
        depth: Depth,
    ) -> Result<(), Error>;
}
Expand description

A Rust type that can be encoded as the FIDL type T.

§Safety

Implementations of encode must write every byte in encoder.buf[offset..offset + T::inline_size(encoder.context)] unless returning an Err value.

Required Methods§

Source

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, depth: Depth, ) -> Result<(), Error>

Encodes the object into the encoder’s buffers. Any handles stored in the object are swapped for Handle::INVALID.

Implementations that encode out-of-line objects must call depth.increment()?.

§Safety

Callers must ensure offset is a multiple of T::inline_align and encoder.buf has room for writing T::inline_size bytes at offset.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl<D, T, X, E, Y> Encode<ResultType<T, E>, D> for Result<X, Y>
where D: ResourceDialect, T: TypeMarker, X: Encode<T, D>, E: TypeMarker, Y: Encode<E, D>,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, depth: Depth, ) -> Result<(), Error>

Source§

impl<D> Encode<EmptyPayload, D> for ()
where D: ResourceDialect,

Source§

unsafe fn encode( self, _encoder: &mut Encoder<'_, D>, _offset: usize, _depth: Depth, ) -> Result<(), Error>

Source§

impl<D> Encode<EmptyStruct, D> for ()
where D: ResourceDialect,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, _depth: Depth, ) -> Result<(), Error>

Source§

impl<D> Encode<bool, D> for bool
where D: ResourceDialect,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, _depth: Depth, ) -> Result<(), Error>

Source§

impl<D> Encode<f32, D> for f32
where D: ResourceDialect,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, _depth: Depth, ) -> Result<(), Error>

Source§

impl<D> Encode<f64, D> for f64
where D: ResourceDialect,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, _depth: Depth, ) -> Result<(), Error>

Source§

impl<D> Encode<i8, D> for i8
where D: ResourceDialect,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, _depth: Depth, ) -> Result<(), Error>

Source§

impl<D> Encode<i16, D> for i16
where D: ResourceDialect,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, _depth: Depth, ) -> Result<(), Error>

Source§

impl<D> Encode<i32, D> for i32
where D: ResourceDialect,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, _depth: Depth, ) -> Result<(), Error>

Source§

impl<D> Encode<i64, D> for i64
where D: ResourceDialect,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, _depth: Depth, ) -> Result<(), Error>

Source§

impl<D> Encode<u8, D> for u8
where D: ResourceDialect,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, _depth: Depth, ) -> Result<(), Error>

Source§

impl<D> Encode<u16, D> for u16
where D: ResourceDialect,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, _depth: Depth, ) -> Result<(), Error>

Source§

impl<D> Encode<u32, D> for u32
where D: ResourceDialect,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, _depth: Depth, ) -> Result<(), Error>

Source§

impl<D> Encode<u64, D> for u64
where D: ResourceDialect,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, _depth: Depth, ) -> Result<(), Error>

Source§

impl<T, E, D> Encode<Boxed<T>, D> for Option<E>
where T: TypeMarker, E: Encode<T, D>, D: ResourceDialect,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, depth: Depth, ) -> Result<(), Error>

Source§

impl<T, E, D> Encode<Optional<T>, D> for Option<E>
where T: TypeMarker, E: Encode<T, D>, D: ResourceDialect,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, depth: Depth, ) -> Result<(), Error>

Source§

impl<T, E, D> Encode<OptionalUnion<T>, D> for Option<E>
where T: TypeMarker, E: Encode<T, D>, D: ResourceDialect,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, depth: Depth, ) -> Result<(), Error>

Source§

impl<T, const N: usize, D> Encode<Array<T, N>, D> for &[<T as TypeMarker>::Owned; N]
where T: ValueTypeMarker, D: ResourceDialect, <T as ValueTypeMarker>::Borrowed<'q>: for<'q> Encode<T, D>,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, depth: Depth, ) -> Result<(), Error>

Source§

impl<T, const N: usize, D> Encode<Array<T, N>, D> for &mut [<T as TypeMarker>::Owned; N]
where T: ResourceTypeMarker, D: ResourceDialect, <T as ResourceTypeMarker>::Borrowed<'q>: for<'q> Encode<T, D>,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, depth: Depth, ) -> Result<(), Error>

Source§

impl<T, const N: usize, D> Encode<Vector<T, N>, D> for &[<T as TypeMarker>::Owned]
where T: ValueTypeMarker, D: ResourceDialect, <T as ValueTypeMarker>::Borrowed<'q>: for<'q> Encode<T, D>,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, depth: Depth, ) -> Result<(), Error>

Source§

impl<T, const N: usize, D> Encode<Vector<T, N>, D> for &mut [<T as TypeMarker>::Owned]

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, depth: Depth, ) -> Result<(), Error>

Source§

impl<const N: usize, D> Encode<BoundedString<N>, D> for &str
where D: ResourceDialect,

Source§

unsafe fn encode( self, encoder: &mut Encoder<'_, D>, offset: usize, depth: Depth, ) -> Result<(), Error>

Implementors§

Source§

impl<D> Encode<EpitaphBody, D> for &EpitaphBody
where D: ResourceDialect,

Source§

impl<D> Encode<FrameworkErr, D> for FrameworkErr
where D: ResourceDialect,

Source§

impl<D> Encode<ObjectType, D> for ObjectType
where D: ResourceDialect,

Source§

impl<D> Encode<Rights, D> for Rights
where D: ResourceDialect,

Source§

impl<D> Encode<TransactionHeader, D> for &TransactionHeader
where D: ResourceDialect,

Source§

impl<D> Encode<WireMetadata, D> for &WireMetadata
where D: ResourceDialect,

Source§

impl<H, T, E, D> Encode<GenericMessageType<H, T>, D> for GenericMessage<<H as TypeMarker>::Owned, E>
where H: ValueTypeMarker, T: TypeMarker, E: Encode<T, D>, D: ResourceDialect, <H as ValueTypeMarker>::Borrowed<'a>: for<'a> Encode<H, D>,

Source§

impl<T, D> Encode<Ambiguous1, D> for T
where D: ResourceDialect,

Source§

impl<T, D> Encode<Ambiguous2, D> for T
where D: ResourceDialect,

Source§

impl<T, D> Encode<Instant<T, TicksUnit>, D> for Instant<T, TicksUnit>
where T: Timeline + 'static, D: ResourceDialect,

Source§

impl<T, D> Encode<Instant<T>, D> for Instant<T>
where T: Timeline + Copy + 'static, D: ResourceDialect,

Source§

impl<T, const OBJECT_TYPE: u32, const RIGHTS: u32> Encode<HandleType<T, OBJECT_TYPE, RIGHTS>, <T as EncodableAsHandle>::Dialect> for T
where T: 'static + EncodableAsHandle,