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#[macro_use]
16pub mod nary_incremental;
17
18pub mod balance;
19pub mod complemented;
20pub mod cross_bi_incremental;
21pub mod flattened_bi;
22pub mod grouped;
23pub mod if_exists;
24pub mod incremental;
25pub mod shared;
26
27#[cfg(test)]
28mod bi_incr_tests;
29#[cfg(test)]
30mod penta_incr_tests;
31#[cfg(test)]
32mod quad_incr_tests;
33#[cfg(test)]
34mod tri_incr_tests;
35
36pub use balance::BalanceConstraint;
37pub use complemented::ComplementedGroupConstraint;
38pub use cross_bi_incremental::IncrementalCrossBiConstraint;
39pub use flattened_bi::FlattenedBiConstraint;
40pub use grouped::GroupedUniConstraint;
41pub use if_exists::{ExistenceMode, IfExistsUniConstraint};
42pub use incremental::IncrementalUniConstraint;
43pub use nary_incremental::{
44    IncrementalBiConstraint, IncrementalPentaConstraint, IncrementalQuadConstraint,
45    IncrementalTriConstraint,
46};