build(deps): switch card_game/klondike to mainline fb01881f
Build and Deploy / build-and-push (push) Failing after 1m6s
Web E2E / web-e2e (push) Failing after 3m7s

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:
funman300
2026-06-10 09:34:56 -07:00
parent 056459619b
commit 2d0359c2ee
7 changed files with 21 additions and 18 deletions
+2 -2
View File
@@ -97,7 +97,7 @@ fn card_to_id(card: &solitaire_core::card::Card) -> u32 {
Suit::Hearts => 2,
Suit::Spades => 3,
};
suit_index * 13 + (card.rank().value() as u32 - 1)
suit_index * 13 + (card.rank() as u32 - 1)
}
impl From<&(solitaire_core::card::Card, bool)> for CardSnapshot {
@@ -110,7 +110,7 @@ impl From<&(solitaire_core::card::Card, bool)> for CardSnapshot {
Suit::Hearts => "hearts",
Suit::Spades => "spades",
},
rank: card.rank().value(),
rank: card.rank() as u8,
face_up: *face_up,
}
}