pub trait Marshal: MarshalSize { fn marshal_to(&self, buf: &mut [u8]) -> Result<usize, Error>; fn marshal(&self) -> Result<Bytes, Error> { ... } }