Struct fidl::encoding::Encoder

source ·
pub struct Encoder<'a, D: ResourceDialect> {
    pub context: Context,
    pub buf: &'a mut Vec<u8>,
    /* private fields */
}
Expand description

Encoding state

Fields§

§context: Context

Encoding context.

§buf: &'a mut Vec<u8>

Buffer to write output data into.

Implementations§

source§

impl<'a, D: ResourceDialect> Encoder<'a, D>

source

pub fn encode<T: TypeMarker>( buf: &'a mut Vec<u8>, handles: &'a mut Vec<<D::ProxyChannel as ProxyChannelFor<D>>::HandleDisposition>, x: impl Encode<T, D>, ) -> Result<()>

FIDL-encodes x into the provided data and handle buffers.

source

pub fn encode_with_context<T: TypeMarker>( context: Context, buf: &'a mut Vec<u8>, handles: &'a mut Vec<<D::ProxyChannel as ProxyChannelFor<D>>::HandleDisposition>, x: impl Encode<T, D>, ) -> Result<()>

FIDL-encodes x into the provided data and handle buffers, using the specified encoding context.

WARNING: Do not call this directly unless you know what you’re doing. FIDL uses Context to coordinate soft migrations, so improper uses of this function could result in ABI breakage.

source

pub fn debug_check_bounds<T: TypeMarker>(&self, offset: usize)

In debug mode only, asserts that there is enough room in the buffer to write an object of type T at offset.

source

pub unsafe fn write_num<T: Numeric>(&mut self, num: T, offset: usize)

Encodes a primitive numeric type.

§Safety

The caller must ensure that self.buf has room for writing T::inline_size bytes as offset.

source

pub fn push_next_handle( &mut self, handle: <D::ProxyChannel as ProxyChannelFor<D>>::HandleDisposition, )

Writes the given handle to the handles list.

source

pub unsafe fn out_of_line_offset(&mut self, len: usize) -> usize

Returns an offset for writing len out-of-line bytes. Zeroes padding bytes at the end if len is not a multiple of 8.

§Safety

The caller must ensure that len is nonzero.

source

pub unsafe fn padding(&mut self, offset: usize, len: usize)

Write padding at the specified offset.

§Safety

The caller must ensure that self.buf has room for writing len bytes as offset.

Trait Implementations§

source§

impl<'a, D: Debug + ResourceDialect> Debug for Encoder<'a, D>
where D::ProxyChannel: Debug,

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a, D> Freeze for Encoder<'a, D>

§

impl<'a, D> RefUnwindSafe for Encoder<'a, D>

§

impl<'a, D> Send for Encoder<'a, D>

§

impl<'a, D> Sync for Encoder<'a, D>

§

impl<'a, D> Unpin for Encoder<'a, D>
where D: Unpin,

§

impl<'a, D> !UnwindSafe for Encoder<'a, D>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

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

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. Read more
source§

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

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. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

§

impl<T> Instrument for T

§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided [Span], returning an Instrumented wrapper. Read more
§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = _

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
§

impl<T> WithSubscriber for T

§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a [WithDispatch] wrapper. Read more
§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a [WithDispatch] wrapper. Read more