From 800bb04e808aa2881719857e5027d251afc047ac Mon Sep 17 00:00:00 2001 From: Lizzy Fleckenstein Date: Thu, 9 Feb 2023 21:22:01 +0100 Subject: Implement deserialize for basic types --- src/to_clt/hud.rs | 24 +++++++++++++++++++----- 1 file changed, 19 insertions(+), 5 deletions(-) (limited to 'src/to_clt/hud.rs') diff --git a/src/to_clt/hud.rs b/src/to_clt/hud.rs index bdd7de7..3a29d7b 100644 --- a/src/to_clt/hud.rs +++ b/src/to_clt/hud.rs @@ -115,18 +115,32 @@ pub struct MinimapModePkt { modes: Vec, } +#[cfg(feature = "server")] impl MtSerialize for MinimapModePkt { fn mt_serialize(&self, writer: &mut impl Write) -> Result<(), SerializeError> { - C::write_len(self.modes.len(), writer)?; + DefCfg::write_len(self.modes.len(), writer)?; self.current.mt_serialize::(writer)?; - for item in self.modes.iter() { - item.mt_serialize::(writer)?; - } + self.modes.mt_serialize::(writer)?; + Ok(()) } } + +#[cfg(feature = "client")] +impl MtDeserialize for MinimapModePkt { + fn mt_deserialize(reader: &mut impl Read) -> Result { + let range = DefCfg::read_len(reader)?; + let current = MtDeserialize::mt_deserialize::(reader)?; + let modes = range + .map(|_| MtDeserialize::mt_deserialize::(reader)) + .try_collect()?; + + Ok(Self { current, modes }) + } +} + /* -TODO: rustify +TODO: rustify this var DefaultMinimap = []MinimapMode{ {Type: NoMinimap}, -- cgit v1.2.3