pub trait Flat<'b>: Encode + Decode<'b> { fn flat(&self) -> Result<Vec<u8>, Error> { ... } fn unflat(bytes: &'b [u8]) -> Result<Self, Error> { ... } }