summaryrefslogtreecommitdiff
path: root/src/lib.rs
diff options
context:
space:
mode:
authorLizzy Fleckenstein <eliasfleckenstein@web.de>2023-02-06 19:56:53 +0100
committerLizzy Fleckenstein <eliasfleckenstein@web.de>2023-02-06 19:56:53 +0100
commitbe0db6761c344a53a13f569a934b33d01eb54147 (patch)
tree2668dbbab1b2ff9ebc12866d8af48e0bc8b771e5 /src/lib.rs
downloadmt_ser-be0db6761c344a53a13f569a934b33d01eb54147.tar.xz
Initial commit
Diffstat (limited to 'src/lib.rs')
-rw-r--r--src/lib.rs52
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::*;