pub trait DecodeBuffer {
// Required methods
fn read(&mut self) -> Result<u8, DecodeError>;
fn read_slice<'a>(
&'a mut self,
size: usize,
) -> Result<&'a [u8], DecodeError>;
fn get_read_len(&self) -> usize;
fn get_raw<'a>(&'a self) -> &'a [u8];
}