Skip to main content

ReadBytes

Trait ReadBytes 

Source
pub trait ReadBytes {
    // Required methods
    fn peek<F, R>(&mut self, n: usize, f: F) -> Result<R>
       where F: FnOnce(&[u8]) -> Result<R>;
    fn advance(&mut self, n: usize);
    fn remaining_buffer(&mut self) -> &[u8] ;

    // Provided methods
    fn read<F, R>(&mut self, n: usize, f: F) -> Result<R>
       where F: FnOnce(&[u8]) -> Result<R> { ... }
    fn is_complete(&mut self) -> Result { ... }
}
Expand description

Simple byte reader from buffer

If you need to read from &[u8], you may use DeBytesReader provided by this crate.

Required Methods§

Source

fn peek<F, R>(&mut self, n: usize, f: F) -> Result<R>
where F: FnOnce(&[u8]) -> Result<R>,

Peek n bytes from head

Source

fn advance(&mut self, n: usize)

Advance buffer head by n bytes. n should be smaller than remaining buffer size.

Source

fn remaining_buffer(&mut self) -> &[u8]

Returns view into remaining buffer

Provided Methods§

Source

fn read<F, R>(&mut self, n: usize, f: F) -> Result<R>
where F: FnOnce(&[u8]) -> Result<R>,

Get n bytes from the beginning of buffer, advance by n bytes

Source

fn is_complete(&mut self) -> Result

Check if buffer is fully consumed (empty)

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl<'a, T> ReadBytes for &'a mut T
where T: ReadBytes,

Source§

fn peek<F, R>(&mut self, n: usize, f: F) -> Result<R>
where F: FnOnce(&[u8]) -> Result<R>,

Source§

fn advance(&mut self, n: usize)

Source§

fn remaining_buffer(&mut self) -> &[u8]

Implementors§

Source§

impl<'a> ReadBytes for DeBytesReader<'a>

Source§

impl<'a, R> ReadBytes for ReadFromTail<'a, R>
where R: TailReadBytes,