113a933170
The repo was formatted under an older stable; rustfmt 1.9 (Rust 1.95) wraps signatures and call sites differently, so every touched file was picking up unrelated formatting hunks. One mechanical pass, and a 'cargo fmt --check' step in the test workflow (same pinned 1.95.0 toolchain) so drift can't accumulate again. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
54 lines
1.9 KiB
Rust
54 lines
1.9 KiB
Rust
pub mod achievement;
|
|
pub mod error;
|
|
pub mod game_state;
|
|
pub mod klondike_adapter;
|
|
pub mod scoring;
|
|
|
|
// Re-export the upstream types that cross the solitaire_core API boundary so
|
|
// downstream crates (engine, wasm) can import from one place without a direct
|
|
// `klondike` / `card_game` dep.
|
|
//
|
|
// `KlondikePileStack`, `SkipCards` and `TableauStack` are intentionally NOT
|
|
// re-exported — they are only used internally (in `klondike_adapter.rs` and
|
|
// when decoding instructions to piles in `instruction_to_piles`) and do not
|
|
// appear in any public method signature.
|
|
pub use card_game::{Card, Deck, Rank, Session, SolveError, Suit};
|
|
pub use klondike::{
|
|
DrawStockConfig, Foundation, Klondike, KlondikeInstruction, KlondikePile, Tableau,
|
|
};
|
|
|
|
// Solvability check API (delegates to `card_game::Session::solve`); replaces the
|
|
// former `solitaire_data::solver` wrapper module.
|
|
pub use game_state::{DEFAULT_SOLVE_MOVES_BUDGET, DEFAULT_SOLVE_STATES_BUDGET, SolveOutcome};
|
|
|
|
/// All four foundation slots, in slot order.
|
|
///
|
|
/// Canonical iteration source for `Foundation` — upstream `klondike` has no
|
|
/// `Foundation::ALL` (unlike `Suit::SUITS` / `Rank::RANKS` in `card_game`),
|
|
/// and inherent impls cannot be added to a foreign type, so the workspace
|
|
/// const lives here. Use this instead of hand-rolling `[Foundation; 4]`
|
|
/// arrays; scattered copies can silently diverge.
|
|
pub const FOUNDATIONS: [Foundation; 4] = [
|
|
Foundation::Foundation1,
|
|
Foundation::Foundation2,
|
|
Foundation::Foundation3,
|
|
Foundation::Foundation4,
|
|
];
|
|
|
|
/// All seven tableau columns, in column order (left to right on screen).
|
|
///
|
|
/// Canonical iteration source for `Tableau` — see [`FOUNDATIONS`] for why
|
|
/// this lives here rather than upstream.
|
|
pub const TABLEAUS: [Tableau; 7] = [
|
|
Tableau::Tableau1,
|
|
Tableau::Tableau2,
|
|
Tableau::Tableau3,
|
|
Tableau::Tableau4,
|
|
Tableau::Tableau5,
|
|
Tableau::Tableau6,
|
|
Tableau::Tableau7,
|
|
];
|
|
|
|
#[cfg(test)]
|
|
mod proptest_tests;
|