pub trait Unmarshall { type Data; type Error: Error; fn unmarshall( &self, data: &dyn Borrow<[u8]> ) -> Result<Self::Data, Self::Error>; }