pub trait EncodeBuffer {
// Required methods
fn push(&mut self, byte: u8) -> Result<(), EncodeError>;
fn push_slice(&mut self, slice: &[u8]) -> Result<(), EncodeError>;
fn get_encoded_len(&self) -> usize;
fn get_raw<'a>(&'a self) -> &'a [u8];
}