pub trait Reader {
    fn deserialization_mode(&self) -> DeserializationMode;
fn read_u8(&mut self) -> Result<u8, Error>;
fn read_u16(&mut self) -> Result<u16, Error>;
fn read_u32(&mut self) -> Result<u32, Error>;
fn read_u64(&mut self) -> Result<u64, Error>;
fn read_i32(&mut self) -> Result<i32, Error>;
fn read_i64(&mut self) -> Result<i64, Error>;
fn read_bytes_len_prefix(&mut self) -> Result<Vec<u8>, Error>;
fn read_fixed_bytes(&mut self, length: usize) -> Result<Vec<u8>, Error>;
fn expect_u8(&mut self, val: u8) -> Result<u8, Error>;
fn protocol_version(&self) -> ProtocolVersion; fn read_empty_bytes(&mut self, length: usize) -> Result<(), Error> { ... } }
Expand description

Implementations defined how different numbers and binary structures are read from an underlying stream or container (depending on implementation).

Required methods

The mode this reader is reading from

Read a u8 from the underlying Read

Read a u16 from the underlying Read

Read a u32 from the underlying Read

Read a u64 from the underlying Read

Read a i32 from the underlying Read

Read a i64 from the underlying Read

Read a u64 len prefix followed by that number of exact bytes.

Read a fixed number of bytes from the underlying reader.

Consumes a byte from the reader, producing an error if it doesn’t have the expected value

Access to underlying protocol version to support version specific deserialization logic.

Provided methods

Read a fixed number of “empty” bytes from the underlying reader. It is an error if any non-empty bytes encountered.

Implementors

Note: We use read_fixed_bytes() here to ensure our “async” I/O behaves as expected.

Utility wrapper for an underlying byte Reader. Defines higher level methods to read numbers, byte vectors, hashes, etc.