mod buf;
pub mod linked;
pub mod list;
pub mod manager;
pub mod slice;
pub use buf::Buf;
pub use linked::LinkedBuffer;
pub use slice::BufferSlice;
use crate::error::Error;
pub trait BufferReader {
fn read_bytes(&mut self, size: usize) -> Result<Buf<'_>, Error>;
fn peek(&mut self, size: usize) -> Result<Buf<'_>, Error>;
fn discard(&mut self, size: usize) -> Result<usize, Error>;
fn release_previous_read(&mut self);
}
pub trait BufferWriter {
fn reserve(&mut self, size: usize) -> Result<&mut [u8], Error>;
fn write_bytes(&mut self, bytes: &[u8]) -> Result<usize, Error>;
}