pub trait Encode<'en, Context = ()> { fn encode(&self, buf: &mut Vec) where Self: Encode<'en, ()>, { self.encode_with(buf, ()); } fn encode_with(&self, buf: &mut Vec, context: Context); } impl<'en, C> Encode<'en, C> for &'_ [u8] { fn encode_with(&self, buf: &mut Vec, _: C) { buf.extend_from_slice(self); } }