Skip to main content

csp_solver/
lib.rs

1//! A generalized CSP (Constraint Satisfaction Problem) solver.
2//!
3//! Isomorphic to the Python CSP solver. Supports:
4//! - Backtracking search with configurable pruning and variable ordering
5//! - AC-3 (Maintaining Arc Consistency) propagation
6//! - Forward checking
7//! - AC-FC hybrid
8//! - Lattice domains for monotonic fixed-point propagation
9//!
10//! The crate-root surface is assembled from three internal modules:
11//! [`config`] (solve vocabulary + the `Csp<D>` container), [`csp`] (the
12//! builder methods), and [`csp::solve`] (propagation + search dispatch).
13
14pub mod adjacency;
15pub(crate) mod bitscan;
16pub mod builder;
17pub mod cancel;
18pub(crate) mod config;
19pub mod constraint;
20pub(crate) mod csp;
21pub mod domain;
22pub mod error;
23pub mod ordering;
24pub mod puzzles;
25#[cfg(feature = "py")]
26pub mod py;
27pub mod solver;
28pub mod variable;
29
30pub use builder::assignment::{
31    AssignmentBuilder, AssignmentError, AssignmentSolution, SENTINEL, assignment,
32};
33pub use cancel::CancelToken;
34pub use config::{Csp, OptimizationMode, PropagationStrategy, Pruning, SolveConfig, SolveStats};
35pub use csp::solve::Unsatisfiable;
36pub use error::CspError;
37pub use puzzles::sudoku;