1#[derive(Debug)]
2pub enum SerializationError {
3 ValueOutOfBounds(i32, i32, i32),
5
6 UnexpectedLength(usize, usize),
8
9 MissingLengthByKey(String),
11}
12
13#[derive(Debug)]
14pub enum DeserializationError {
15 NotEnoughBytes(usize),
17
18 UnexpectedLength(usize, usize),
20
21 UnknownDiscriminant(u8),
23
24 MissingLengthByKey(String),
26}
27
28pub trait BinarySerializer {
29 fn to_bytes(&self, config: Option<&mut SerializerConfig>) -> Result<Vec<u8>, SerializationError>;
30 fn write_bytes(&self, buffer: &mut Vec<u8>, config: Option<&mut SerializerConfig>) -> Result<(), SerializationError>;
31}
32
33pub trait BinaryDeserializer : Sized {
34 fn from_bytes(bytes: &[u8], config: Option<&mut SerializerConfig>) -> Result<Self, DeserializationError>;
35}
36
37mod config;
38pub mod utils;
39pub mod dynamics;
40pub mod fixed_int;
41pub mod dyn_int;
42pub mod variable;
43
44pub use binary_codec_derive::{ToBytes, FromBytes};
45pub use config::SerializerConfig;