pub trait ResizeBuffer: WriteBuffer + AsRef<[u8]> + AsMut<[u8]> {
    // Required methods
    fn buffer_insert(&mut self, pos: usize, data: &[u8]) -> Result<(), Error>;
    fn buffer_remove(&mut self, range: Range<usize>) -> Result<(), Error>;
    fn buffer_resize(&mut self, len: usize) -> Result<(), Error>;

    // Provided method
    fn buffer_extend(&mut self, len: usize) -> Result<&mut [u8], Error> { ... }
}
Expand description

Support for writing to, accessing, and resizing a byte buffer

Required Methods§

source

fn buffer_insert(&mut self, pos: usize, data: &[u8]) -> Result<(), Error>

Insert a slice at the given position in the buffer

source

fn buffer_remove(&mut self, range: Range<usize>) -> Result<(), Error>

Remove an exclusive range from the buffer

source

fn buffer_resize(&mut self, len: usize) -> Result<(), Error>

Resize the buffer, truncating or padding it with zeroes

Provided Methods§

source

fn buffer_extend(&mut self, len: usize) -> Result<&mut [u8], Error>

Extend the buffer with len bytes of zeroes and return a mutable reference to the slice

Implementations on Foreign Types§

source§

impl ResizeBuffer for Vec<u8>

Available on crate feature alloc only.
source§

fn buffer_insert(&mut self, pos: usize, data: &[u8]) -> Result<(), Error>

source§

fn buffer_remove(&mut self, range: Range<usize>) -> Result<(), Error>

source§

fn buffer_resize(&mut self, len: usize) -> Result<(), Error>

Implementors§