pub trait Read {
    // Required methods
    fn advance(&mut self, bits: usize);
    fn peek_bits(&mut self) -> Result<Word>;
    fn read_bit(&mut self) -> Result<bool>;
    fn read_bits(&mut self, bits: usize) -> Result<Word>;
    fn read_bytes(&mut self, len: NonZeroUsize) -> Result<&[u8]>;
    fn reserve_bits(&self, bits: usize) -> Result<()>;
}
Expand description

Abstracts over reading bits from a buffer.

Required Methods§

source

fn advance(&mut self, bits: usize)

Advances any amount of bits. Must never fail.

source

fn peek_bits(&mut self) -> Result<Word>

Peeks 64 bits without reading them. Bits after EOF are zeroed.

source

fn read_bit(&mut self) -> Result<bool>

source

fn read_bits(&mut self, bits: usize) -> Result<Word>

Reads up to 64 bits. bits must be in range 1..=64.

source

fn read_bytes(&mut self, len: NonZeroUsize) -> Result<&[u8]>

Reads len bytes.

source

fn reserve_bits(&self, bits: usize) -> Result<()>

Ensures that at least bits remain. Never underreports remaining bits.

Implementors§

source§

impl<'a> Read for WordReader<'a>