Trait fidl::encoding::Encode

source ·
pub unsafe trait Encode<T: TypeMarker>: Sized {
    // Required method
    unsafe fn encode(
        self,
        encoder: &mut Encoder<'_>,
        offset: usize,
        depth: Depth
    ) -> Result<()>;
}
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<'_>, offset: usize, depth: Depth ) -> Result<()>

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.

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl Encode<bool> for bool

source§

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

source§

impl Encode<f32> for f32

source§

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

source§

impl Encode<f64> for f64

source§

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

source§

impl Encode<i8> for i8

source§

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

source§

impl Encode<i16> for i16

source§

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

source§

impl Encode<i32> for i32

source§

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

source§

impl Encode<i64> for i64

source§

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

source§

impl Encode<u8> for u8

source§

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

source§

impl Encode<u16> for u16

source§

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

source§

impl Encode<u32> for u32

source§

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

source§

impl Encode<u64> for u64

source§

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

source§

impl Encode<EmptyPayload> for ()

source§

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

source§

impl Encode<EmptyStruct> for ()

source§

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

source§

impl<'a, T: ResourceTypeMarker, const N: usize> Encode<Array<T, N>> for &'a mut [T::Owned; N]

source§

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

source§

impl<'a, T: ResourceTypeMarker, const N: usize> Encode<Vector<T, N>> for &'a mut [T::Owned]

source§

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

source§

impl<'a, T: ValueTypeMarker, const N: usize> Encode<Array<T, N>> for &'a [T::Owned; N]

source§

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

source§

impl<'a, T: ValueTypeMarker, const N: usize> Encode<Vector<T, N>> for &'a [T::Owned]

source§

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

source§

impl<'a, const N: usize> Encode<BoundedString<N>> for &'a str

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

Implementors§