build(deps): switch card_game/klondike to mainline fb01881f
Move both crates off the damaged "hacked" rev 99b49e62 onto mainline master (card_game 0.4.0->0.4.1, klondike 0.3.0->0.4.0) to pick up the new serialize implementation. Mainline drops the serde derives from Deck/Suit/Rank (only Card is serde now, as a compact transparent NonZeroU8) and gives KlondikeInstruction a hand-written serde impl. Adapt the repo: - Rank::value() was removed; the enum discriminant is the 1..=13 value, so use `rank as u32/u8` in the three card_to_id helpers (wasm, radial_menu, feedback_anim). - Drop the vestigial Serialize/Deserialize derive on theme::CardKey; theme manifests address faces by manifest_name strings, never by serialising CardKey, and Suit/Rank no longer implement serde. GameState's own instruction-mirror serde (schema v3/v4) is insulated from the klondike serde change, so the on-disk save format is unchanged. cargo test --workspace and cargo clippy --workspace -- -D warnings pass. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -211,8 +211,9 @@ pub fn skip_cards_from_count(skip: usize) -> Option<SkipCards> {
|
||||
// ── Legacy serde mirror types (kept for backward compatibility) ───────────────
|
||||
//
|
||||
// These types were introduced when upstream `klondike` had no serde feature.
|
||||
// At rev 99b49e62, upstream provides full serde support, and `GameState`
|
||||
// serialises `saved_moves` directly as `Vec<KlondikeInstruction>` (schema v4).
|
||||
// Mainline `klondike` now provides full serde support (with a hand-written
|
||||
// compact `KlondikeInstruction` impl), and `GameState` serialises
|
||||
// `saved_moves` directly as `Vec<KlondikeInstruction>` (schema v4).
|
||||
//
|
||||
// The mirror types are retained for three reasons:
|
||||
// 1. Schema v3 migration: `AnyInstruction` in `game_state.rs` uses
|
||||
|
||||
Reference in New Issue
Block a user