pub trait ByteReader {
    // Required methods
    fn read_u8(&mut self) -> Result<u8, DeserializationError>;
    fn peek_u8(&self) -> Result<u8, DeserializationError>;
    fn read_vec(&mut self, len: usize) -> Result<Vec<u8>, DeserializationError>;
    fn read_array<const N: usize>(
        &mut self
    ) -> Result<[u8; N], DeserializationError>;
    fn check_eor(&self, num_bytes: usize) -> Result<(), DeserializationError>;
    fn has_more_bytes(&self) -> bool;

    // Provided methods
    fn read_bool(&mut self) -> Result<bool, DeserializationError> { ... }
    fn read_u16(&mut self) -> Result<u16, DeserializationError> { ... }
    fn read_u32(&mut self) -> Result<u32, DeserializationError> { ... }
    fn read_u64(&mut self) -> Result<u64, DeserializationError> { ... }
    fn read_u128(&mut self) -> Result<u128, DeserializationError> { ... }
    fn read<D>(&mut self) -> Result<D, DeserializationError>
       where Self: Sized,
             D: Deserializable { ... }
}
Expand description

Defines how primitive values are to be read from Self.

Required Methods§

source

fn read_u8(&mut self) -> Result<u8, DeserializationError>

Returns a single byte read from self.

Errors

Returns a DeserializationError error the reader is at EOF.

source

fn peek_u8(&self) -> Result<u8, DeserializationError>

Returns the next byte to be read from self without advancing the reader to the next byte.

Errors

Returns a DeserializationError error the reader is at EOF.

source

fn read_vec(&mut self, len: usize) -> Result<Vec<u8>, DeserializationError>

Returns a byte vector of the specified length read from self.

Errors

Returns a DeserializationError if a vector of the specified length could not be read from self.

source

fn read_array<const N: usize>( &mut self ) -> Result<[u8; N], DeserializationError>

Returns a byte array of length N read from self.

Errors

Returns a DeserializationError if an array of the specified length could not be read from self.

source

fn check_eor(&self, num_bytes: usize) -> Result<(), DeserializationError>

Checks if it is possible to read at least num_bytes bytes from this ByteReader

Errors

Returns an error if, when reading the requested number of bytes, we go beyond the boundaries of the array

source

fn has_more_bytes(&self) -> bool

Returns true if there are more bytes left to be read from self.

Provided Methods§

source

fn read_bool(&mut self) -> Result<bool, DeserializationError>

Returns a boolean value read from self consuming 1 byte from the reader.

Errors

Returns a DeserializationError if a u16 value could not be read from self.

source

fn read_u16(&mut self) -> Result<u16, DeserializationError>

Returns a u16 value read from self in little-endian byte order.

Errors

Returns a DeserializationError if a u16 value could not be read from self.

source

fn read_u32(&mut self) -> Result<u32, DeserializationError>

Returns a u32 value read from self in little-endian byte order.

Errors

Returns a DeserializationError if a u32 value could not be read from self.

source

fn read_u64(&mut self) -> Result<u64, DeserializationError>

Returns a u64 value read from self in little-endian byte order.

Errors

Returns a DeserializationError if a u64 value could not be read from self.

source

fn read_u128(&mut self) -> Result<u128, DeserializationError>

Returns a u128 value read from self in little-endian byte order.

Errors

Returns a DeserializationError if a u128 value could not be read from self.

source

fn read<D>(&mut self) -> Result<D, DeserializationError>where Self: Sized, D: Deserializable,

Reads a deserializable value from self.

Panics

Panics if the value could not be read from self.

Object Safety§

This trait is not object safe.

Implementors§