rabbitmq_stream_protocol/codec/
mod.rs1use 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}