From b6e9d9fbdd24095c72644273e574f576d84b3ae8 Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Sat, 30 May 2026 10:44:33 -0700 Subject: [PATCH] wag --- card_game/src/lib.rs | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/card_game/src/lib.rs b/card_game/src/lib.rs index 0c2db52..1f1e44f 100644 --- a/card_game/src/lib.rs +++ b/card_game/src/lib.rs @@ -663,19 +663,24 @@ where } #[cfg(feature = "serde")] -impl<'de, G: Game> serde::Deserialize<'de> for SessionState +impl<'de, G: Game> serde::de::DeserializeSeed<'de> for Session where G: serde::Deserialize<'de>, G::Instruction: serde::Deserialize<'de>, { - fn deserialize(deserializer: D) -> Result + type Value = SessionState; + fn deserialize(deserializer: D) -> Result where D: serde::Deserializer<'de>, { struct SessionStateVisitor { state: G, } - impl<'de, G: Game> serde::de::Visitor<'de> for SessionStateVisitor { + impl<'de, G: Game> serde::de::Visitor<'de> for SessionStateVisitor + where + G: serde::Deserialize<'de>, + G::Instruction: serde::Deserialize<'de>, + { type Value = SessionState; fn expecting(&self, f: &mut std::fmt::Formatter) -> std::fmt::Result { write!(f, "State History") @@ -689,7 +694,7 @@ where Some(capacity) => Vec::with_capacity(capacity), None => Vec::new(), }; - while let Some(instruction) = seq.next_element()? { + while let Some(instruction) = seq.next_element::()? { history.push(StateSnapshot { state: state.clone(), instruction: instruction.clone(), @@ -715,7 +720,7 @@ where { if let Some(state) = self.history.first() { state.serialize(serializer)?; - }else{ + } else { self.state.serialize(serializer)?; } use serde::ser::SerializeSeq;