recode/util/encoder.rs
1use crate::Encoder;
2
3/// An extension trait for [`Encoder`].
4pub trait EncoderExt<B>: Encoder<B> + Sized {
5 /// Encodes `self` into `buf`.
6 ///
7 /// This is just an alias to [`Encoder::encode`], with `self` passed in
8 /// the place of `item`.
9 #[inline(always)]
10 fn encode_to(&self, buf: &mut B) -> Result<(), Self::Error> {
11 <Self as Encoder<B>>::encode(self, buf)
12 }
13
14 /// Returns the number of bytes required to encode `self`.
15 fn size(&self, buf: &B) -> usize {
16 <Self as Encoder<B>>::size_of(self, buf)
17 }
18}
19
20impl<T, B> EncoderExt<B> for T where T: Encoder<B> + Sized {}