Skip to main content

pons_dds/
lib.rs

1#![doc = include_str!("../README.md")]
2// The crate is a line-by-line port of a C++ codebase: it mixes `i32`,
3// `usize`, `u8`, and `u16` throughout its indexing and bit-twiddling
4// math, uses bridge-shorthand bindings (lho/rho, lh/rh), keeps long
5// translated functions and large fixed-size lookup tables, and mirrors
6// vendor instance methods even when they do not touch `self`. Fighting
7// these lints would obscure the correspondence with the vendor source
8// without buying real safety — invariants are guaranteed by the
9// surrounding bridge-specific context.
10#![allow(
11    clippy::cast_possible_truncation,
12    clippy::cast_possible_wrap,
13    clippy::cast_precision_loss,
14    clippy::cast_sign_loss,
15    clippy::large_stack_arrays,
16    clippy::large_stack_frames,
17    clippy::needless_pass_by_ref_mut,
18    clippy::similar_names,
19    clippy::too_many_lines,
20    clippy::unused_self
21)]
22
23pub(crate) mod convert;
24pub(crate) mod later_tricks;
25pub(crate) mod lookup;
26pub(crate) mod move_type;
27pub(crate) mod moves;
28pub(crate) mod pos;
29pub(crate) mod quick_tricks;
30pub(crate) mod search;
31pub mod solver;
32pub(crate) mod tt;
33
34pub use contract_bridge::FullDeal;
35pub use search::SearchStats;
36pub use solver::{
37    Solver, TrickCountTable, solve_deal, solve_deal_on, solve_deals, solve_deals_with_memory,
38};