From be0db6761c344a53a13f569a934b33d01eb54147 Mon Sep 17 00:00:00 2001 From: Lizzy Fleckenstein Date: Mon, 6 Feb 2023 19:56:53 +0100 Subject: Initial commit --- src/lib.rs | 52 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/lib.rs (limited to 'src/lib.rs') diff --git a/src/lib.rs b/src/lib.rs new file mode 100644 index 0000000..143b397 --- /dev/null +++ b/src/lib.rs @@ -0,0 +1,52 @@ +pub use enumset; + +#[cfg(feature = "random")] +pub use generate_random; + +#[cfg(feature = "random")] +pub use rand; + +#[cfg(feature = "serde")] +pub use serde; + +use enumset::{EnumSet, EnumSetType}; +use mt_data_derive::mt_derive; +pub use mt_data_derive::{MtDeserialize, MtSerialize}; +use std::{collections::HashMap, fmt, io}; +use thiserror::Error; + +#[cfg(feature = "serde")] +use serde::{Deserialize, Serialize}; + +#[cfg(feature = "random")] +use generate_random::GenerateRandom; + +#[derive(Error, Debug)] +pub enum SerializeError { + #[error("{0}")] + IoError(#[from] io::Error), + #[error("serialization is not implemented")] + Unimplemented, +} + +#[derive(Error, Debug)] +pub enum DeserializeError { + #[error("{0}")] + IoError(#[from] io::Error), + #[error("deserialization is not implemented")] + Unimplemented, +} + +pub trait MtSerialize: Sized { + fn mt_serialize(&self, writer: &mut W) -> Result<(), SerializeError>; +} + +pub trait MtDeserialize: Sized { + fn mt_deserialize(reader: &mut R) -> Result; +} + +mod to_clt; +mod to_srv; + +pub use to_clt::*; +pub use to_srv::*; -- cgit v1.2.3