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 {