pub trait Input {
    fn remaining_len(&mut self) -> Result<Option<usize>, Error>;
fn read(&mut self, into: &mut [u8]) -> Result<(), Error>; fn read_byte(&mut self) -> Result<u8, Error> { ... }
fn descend_ref(&mut self) -> Result<(), Error> { ... }
fn ascend_ref(&mut self) { ... } }
Expand description

Trait that allows reading of data into a slice.

Required methods

Should return the remaining length of the input data. If no information about the input length is available, None should be returned.

The length is used to constrain the preallocation while decoding. Returning a garbage length can open the doors for a denial of service attack to your application. Otherwise, returning None can decrease the performance of your application.

Read the exact number of bytes required to fill the given buffer.

Note that this function is similar to std::io::Read::read_exact and not std::io::Read::read.

Provided methods

Read a single byte from the input.

Descend into nested reference when decoding. This is called when decoding a new refence-based instance, such as Vec or Box. Currently all such types are allocated on the heap.

Ascend to previous structure level when decoding. This is called when decoding reference-based type is finished.

Implementations on Foreign Types