mindustry logic execution, map- and schematic- parsing and rendering
Diffstat (limited to 'src/data/mod.rs')
| -rw-r--r-- | src/data/mod.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/data/mod.rs b/src/data/mod.rs index 3eccbd1..85cbbd6 100644 --- a/src/data/mod.rs +++ b/src/data/mod.rs @@ -455,13 +455,16 @@ impl<'d> TryFrom<DataWrite<'d>> for Vec<u8> { } } /// basic serialization/deserialization functions -pub trait Serializer<D> { +pub trait Serializable +where + Self: Sized, +{ type ReadError; type WriteError; - - fn deserialize(&mut self, buff: &mut DataRead<'_>) -> Result<D, Self::ReadError>; - - fn serialize(&mut self, buff: &mut DataWrite<'_>, data: &D) -> Result<(), Self::WriteError>; + /// deserialize self from a binary buffer + fn deserialize(buff: &mut DataRead<'_>) -> Result<Self, Self::ReadError>; + /// transform self into a binary buffer + fn serialize(&self, buff: &mut DataWrite<'_>) -> Result<(), Self::WriteError>; } #[derive(Clone, Copy, Eq, PartialEq)] |