diff options
author | Lizzy Fleckenstein <eliasfleckenstein@web.de> | 2023-02-06 19:56:53 +0100 |
---|---|---|
committer | Lizzy Fleckenstein <eliasfleckenstein@web.de> | 2023-02-06 19:56:53 +0100 |
commit | be0db6761c344a53a13f569a934b33d01eb54147 (patch) | |
tree | 2668dbbab1b2ff9ebc12866d8af48e0bc8b771e5 /src/lib.rs | |
download | mt_ser-be0db6761c344a53a13f569a934b33d01eb54147.tar.xz |
Initial commit
Diffstat (limited to 'src/lib.rs')
-rw-r--r-- | src/lib.rs | 52 |
1 files changed, 52 insertions, 0 deletions
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<W: io::Write>(&self, writer: &mut W) -> Result<(), SerializeError>; +} + +pub trait MtDeserialize: Sized { + fn mt_deserialize<R: io::Read>(reader: &mut R) -> Result<Self, DeserializeError>; +} + +mod to_clt; +mod to_srv; + +pub use to_clt::*; +pub use to_srv::*; |