Skip to main content

openpql_range_parser/checker/
mod.rs

1type IdxVec<const N: usize> = SmallVec<[Idx; N]>;
2type RankDiff = i8;
3
4use super::{
5    Array, Card, Card64, Error, From, Idx, Itertools, LazyLock, LocInfo, PhantomData, Rank, Rank16,
6    SmallVec, Suit, Suit4, ast,
7    ast::{List, ListElem, RangeCard, RankVar, Span, SpanElem, SuitVar, Term, TermElem},
8    ops, parse_expr,
9};
10
11/// Range checker for a 5-card board.
12pub type BoardRangeChecker<const SD: bool> = Checker<5, true, SD>;
13/// Range checker for an N-card hand.
14pub type RangeChecker<const N: usize, const SD: bool> = Checker<N, false, SD>;
15
16mod checker;
17mod constrain;
18mod constrain_rank;
19mod constrain_suit;
20mod expr;
21mod leaf;
22mod perm_indices;
23mod var_condition;
24mod var_condition_rank;
25mod var_condition_suit;
26
27pub use checker::Checker;
28use constrain::Constrain;
29use constrain_rank::ConstrainRank;
30use constrain_suit::ConstrainSuit;
31use expr::Expr;
32use leaf::{Deps, Leaf};
33use perm_indices::range_cond_indices;
34use var_condition::VarCondition;
35use var_condition_rank::VarConditionRank;
36use var_condition_suit::VarConditionSuit;