Skip to main content

csp_solver/solver/
mod.rs

1//! Solver dispatch: AC-3 propagation, forward checking, backtracking search.
2
3pub mod ac3;
4pub mod backjump;
5pub mod backtrack;
6pub mod gac_alldiff;
7pub mod gac_alldiff_except;
8pub mod local_search;
9pub mod monotonic;
10pub mod nogoods;
11pub mod optimize;
12pub mod propagate;
13
14use crate::adjacency::Adjacency;
15use crate::constraint::ConstraintEnum;
16use crate::domain::Domain;
17use crate::variable::Variable;
18use crate::SolveStats;
19
20/// Shared search context passed to all recursive search strategies.
21/// Carries the problem definition (variables, constraints, adjacency) and the
22/// mutable statistics accumulator. Extracted to tame `too_many_arguments` on
23/// `backtrack_recurse`, `backjump_recurse`, and `bb_recurse`.
24pub(crate) struct SearchContext<'a, D: Domain> {
25    pub variables: &'a mut [Variable<D>],
26    pub constraints: &'a [ConstraintEnum<D>],
27    pub adjacency: &'a Adjacency,
28    pub stats: &'a mut SolveStats,
29}