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§
Sourcefn take_chunks(&mut self, count: usize) -> Result<&'de mut [Chunk], DecodeError>
fn take_chunks(&mut self, count: usize) -> Result<&'de mut [Chunk], DecodeError>
Takes a slice of Chunks from the decoder.
Sourcefn commit(&mut self)
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.
Sourcefn finish(&self) -> Result<(), DecodeError>
fn finish(&self) -> Result<(), DecodeError>
Verifies that decoding finished cleanly, with no leftover chunks or resources.