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 {}