dencode/
encoder.rs

1use std::io::Error;
2
3use bytes::BytesMut;
4
5use super::fuse::Fuse;
6
7/// Encoding of messages as bytes, for use with `FramedWrite`.
8pub trait Encoder<Item> {
9    /// The type of encoding errors.
10    type Error: From<Error>;
11
12    /// Encodes an item into the `BytesMut` provided by dst.
13    fn encode(&mut self, item: Item, dst: &mut BytesMut) -> Result<(), Self::Error>;
14}
15
16impl<T, Item, U: Encoder<Item>> Encoder<Item> for Fuse<T, U> {
17    type Error = U::Error;
18
19    fn encode(&mut self, item: Item, dst: &mut BytesMut) -> Result<(), Self::Error> {
20        self.codec.encode(item, dst)
21    }
22}