From f13d08a0a875477e041ed393cce3fb34761f9649 Mon Sep 17 00:00:00 2001 From: Rhys Lloyd Date: Tue, 9 Jun 2026 09:46:44 -0700 Subject: [PATCH] move struct into deserialize impl --- card_game/src/lib.rs | 25 +++++++++++-------------- 1 file changed, 11 insertions(+), 14 deletions(-) diff --git a/card_game/src/lib.rs b/card_game/src/lib.rs index a5e55c9..94cf754 100644 --- a/card_game/src/lib.rs +++ b/card_game/src/lib.rs @@ -653,20 +653,6 @@ where } } -#[cfg_attr( - feature = "serde", - derive(serde_derive::Deserialize), - serde(bound(deserialize = " - G: serde::Deserialize<'de>, - SessionConfig: serde::Deserialize<'de>, - Vec: serde::Deserialize<'de>, - ")) -)] -struct SerializedSession { - config: SessionConfig, - state: G, - history: Vec, -} #[cfg(feature = "serde")] impl<'de, G: Game> serde::de::Deserialize<'de> for Session where @@ -680,6 +666,17 @@ where where D: serde::Deserializer<'de>, { + #[derive(serde_derive::Deserialize)] + #[serde(bound(deserialize = " + G: serde::Deserialize<'de>, + SessionConfig: serde::Deserialize<'de>, + Vec: serde::Deserialize<'de>, + "))] + struct SerializedSession { + config: SessionConfig, + state: G, + history: Vec, + } let serialized = SerializedSession::deserialize(deserializer)?; let mut session = Session::new(serialized.state, serialized.config); for instruction in serialized.history {