1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
pub trait Encode<'en, Context = ()> { fn encode(&self, buf: &mut Vec<u8>) where Self: Encode<'en, ()>, { self.encode_with(buf, ()); } fn encode_with(&self, buf: &mut Vec<u8>, context: Context); } impl<'en, C> Encode<'en, C> for &'_ [u8] { fn encode_with(&self, buf: &mut Vec<u8>, _: C) { buf.extend_from_slice(self); } }