rabbitmq_stream_protocol/codec/
mod.rs

1use std::io::Write;
2
3use crate::error::{DecodeError, EncodeError};
4
5pub mod decoder;
6pub mod encoder;
7
8pub trait Encoder {
9    fn encoded_size(&self) -> u32;
10    fn encode(&self, writer: &mut impl Write) -> Result<(), EncodeError>;
11    fn encoded_size_version_2(&self) -> u32 {
12        self.encoded_size()
13    }
14    fn encode_version_2(&self, writer: &mut impl Write) -> Result<(), EncodeError> {
15        self.encode(writer)
16    }
17}
18
19pub trait Decoder
20where
21    Self: Sized,
22{
23    fn decode(input: &[u8]) -> Result<(&[u8], Self), DecodeError>;
24    fn decode_version_2(input: &[u8]) -> Result<(&[u8], Self), DecodeError> {
25        Decoder::decode(input)
26    }
27}