Skip to main content

Decoder

Trait Decoder 

Source
pub trait Decoder<'de>: InternalHandleDecoder {
    // Required methods
    fn take_chunks(
        &mut self,
        count: usize,
    ) -> Result<&'de mut [Chunk], DecodeError>;
    fn commit(&mut self);
    fn finish(&self) -> Result<(), DecodeError>;
}
Expand description

A decoder for FIDL messages.

Required Methods§

Source

fn take_chunks(&mut self, count: usize) -> Result<&'de mut [Chunk], DecodeError>

Takes a slice of Chunks from the decoder.

Source

fn commit(&mut self)

Commits to any decoding operations which are in progress.

Resources like handles may be taken from a decoder during decoding. However, decoding may fail after those resources are taken but before decoding completes. To ensure that resources are always dropped, taken resources are still considered owned by the decoder until commit is called. After commit, ownership of those resources is transferred to the decoded data.

Source

fn finish(&self) -> Result<(), DecodeError>

Verifies that decoding finished cleanly, with no leftover chunks or resources.

Implementations on Foreign Types§

Source§

impl<'de> Decoder<'de> for &'de mut [Chunk]

Source§

fn take_chunks(&mut self, count: usize) -> Result<&'de mut [Chunk], DecodeError>

Source§

fn commit(&mut self)

Source§

fn finish(&self) -> Result<(), DecodeError>

Implementors§