//! Perfect-hash hand evaluation core.
//!
//! Tables are generated by `build.rs` (see the spec). Each card adds a fixed
//! `u64` key contribution; ranking is a branchless flush test plus one masked
//! table load. All indices are masked to power-of-two table lengths so safe
//! indexing carries no bounds-check branch. No `unsafe`.
include!;
/// Bit mask selecting each suit nibble's `0x8` flush bit (suit count reached 5,
/// given the +3 bias baked into [`DEFAULT_KEY`]).
const FLUSH_BITS: u64 = 0x8888u64 << 48;
/// Raw score for an accumulated `(key, mask)` pair. Higher = better. The score
/// is `(category << 12) | subrank`; see [`crate::core::Rank`].
pub
/// Fold one card (index `suit*13 + value`, 0..51) into a `(key, mask)` pair.
pub