pub trait Unmarshall { type Data; type Error: Error; // Required method fn unmarshall(&self, reader: impl Read) -> Result<Self::Data, Self::Error>; }