Skip to main content

solverforge_scoring/constraint/
mod.rs

1/* Zero-erasure monomorphized constraint infrastructure.
2
3This module provides a fully monomorphized constraint evaluation system where
4all closures are stored as concrete generic types - no Arc, no dyn,
5fully monomorphized.
6
7# Key Benefits
8
9- **No hot-path erasure**: Filters and weights are generic type params
10- **Inline evaluation**: No boxing or downcasting per predicate call
11- **Monomorphized pipelines**: Each constraint is fully specialized
12*/
13
14#[macro_use]
15pub mod macros;
16#[macro_use]
17pub mod nary_incremental;
18
19pub mod balance;
20pub mod complemented;
21pub mod cross_bi_incremental;
22pub mod cross_complemented_grouped;
23pub mod cross_grouped;
24pub mod exists;
25pub mod flattened_bi;
26pub mod grouped;
27pub mod incremental;
28mod incremental_markers;
29pub mod list_precedence;
30pub mod projected;
31pub mod shared;
32
33#[cfg(test)]
34mod tests;
35
36pub use balance::BalanceConstraint;
37pub use complemented::ComplementedGroupConstraint;
38pub use cross_bi_incremental::IncrementalCrossBiConstraint;
39pub use cross_complemented_grouped::CrossComplementedGroupedConstraint;
40pub use cross_grouped::CrossGroupedConstraint;
41pub use exists::IncrementalExistsConstraint;
42pub use flattened_bi::FlattenedBiConstraint;
43pub use grouped::GroupedUniConstraint;
44pub use incremental::IncrementalUniConstraint;
45pub use list_precedence::ListPrecedenceMakespanConstraint;
46pub use nary_incremental::{
47    IncrementalBiConstraint, IncrementalPentaConstraint, IncrementalQuadConstraint,
48    IncrementalTriConstraint,
49};
50pub use projected::{
51    ProjectedComplementedGroupedConstraint, ProjectedGroupedConstraint, ProjectedUniConstraint,
52};