pub trait Sink {
type Error;
fn sentinel(&mut self) -> Result<(), Self::Error>;
fn group_code(&mut self, code: u16) -> Result<(), Self::Error>;
fn string(&mut self, value: &[u8]) -> Result<(), Self::Error>;
fn boolean(&mut self, value: bool) -> Result<(), Self::Error>;
fn int16(&mut self, value: i16) -> Result<(), Self::Error>;
fn int32(&mut self, value: i32) -> Result<(), Self::Error>;
fn int64(&mut self, value: i64) -> Result<(), Self::Error>;
fn double(&mut self, value: f64) -> Result<(), Self::Error>;
fn binary_chunk(&mut self, data: &[u8]) -> Result<(), Self::Error>;
}