solverforge_scoring/constraint/
mod.rs

1//! Zero-erasure typed constraint infrastructure.
2//!
3//! This module provides a fully typed constraint evaluation system where
4//! all closures are stored as concrete generic types - no Arc, no dyn,
5//! fully 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#[macro_use]
14pub mod macros;
15
16pub mod balance;
17pub mod bi_incremental;
18pub mod complemented;
19pub mod cross_bi_incremental;
20pub mod flattened_bi;
21pub mod grouped;
22pub mod if_exists;
23pub mod incremental;
24pub mod penta_incremental;
25pub mod quad_incremental;
26pub mod shared;
27pub mod tri_incremental;
28
29#[cfg(test)]
30mod bi_incr_tests;
31#[cfg(test)]
32mod penta_incr_tests;
33#[cfg(test)]
34mod quad_incr_tests;
35#[cfg(test)]
36mod tri_incr_tests;
37
38pub use balance::BalanceConstraint;
39pub use bi_incremental::IncrementalBiConstraint;
40pub use complemented::ComplementedGroupConstraint;
41pub use cross_bi_incremental::IncrementalCrossBiConstraint;
42pub use flattened_bi::FlattenedBiConstraint;
43pub use grouped::GroupedUniConstraint;
44pub use if_exists::{ExistenceMode, IfExistsUniConstraint};
45pub use incremental::IncrementalUniConstraint;
46pub use penta_incremental::IncrementalPentaConstraint;
47pub use quad_incremental::IncrementalQuadConstraint;
48pub use tri_incremental::IncrementalTriConstraint;