#[derive(Debug)]
pub enum SerializationError {
ValueOutOfBounds(i32, i32, i32),
UnexpectedLength(usize, usize),
MissingLengthByKey(String),
InvalidData(String),
}
#[derive(Debug)]
pub enum DeserializationError {
NotEnoughBytes(usize),
UnexpectedLength(usize, usize),
UnknownDiscriminant(u8),
MissingLengthByKey(String),
InvalidData(String),
}
pub trait BinarySerializer {
fn to_bytes<T : Clone>(&self, config: Option<&mut SerializerConfig<T>>) -> Result<Vec<u8>, SerializationError>;
fn write_bytes<T : Clone>(&self, buffer: &mut Vec<u8>, config: Option<&mut SerializerConfig<T>>) -> Result<(), SerializationError>;
}
pub trait BinaryDeserializer : Sized {
fn from_bytes<T : Clone>(bytes: &[u8], config: Option<&mut SerializerConfig<T>>) -> Result<Self, DeserializationError>;
}
mod config;
pub mod utils;
pub mod dynamics;
pub mod fixed_int;
pub mod dyn_int;
pub mod variable;
pub use binary_codec_derive::{ToBytes, FromBytes};
pub use config::SerializerConfig;