Crate solverforge_scoring

Crate solverforge_scoring 

Source
Expand description

Zero-erasure incremental constraint scoring for SolverForge.

This crate provides fully-typed incremental scoring infrastructure:

  • Zero-erasure incremental constraints (IncrementalUniConstraint, IncrementalBiConstraint, etc.)
  • Typed score directors (TypedScoreDirector)
  • Tuple-based constraint sets (zero virtual dispatch)

§Architecture

All scoring is fully monomorphized - no Box<dyn Trait> in hot paths. Closures are stored as generic type parameters, not Arc<dyn Fn>.

Re-exports§

pub use constraint::GroupedUniConstraint;
pub use constraint::IncrementalBiConstraint;
pub use constraint::IncrementalCrossBiConstraint;
pub use constraint::IncrementalPentaConstraint;
pub use constraint::IncrementalQuadConstraint;
pub use constraint::IncrementalTriConstraint;
pub use constraint::IncrementalUniConstraint;
pub use api::constraint_set::ConstraintResult;
pub use api::constraint_set::ConstraintSet;
pub use api::constraint_set::IncrementalConstraint;
pub use api::weight_overrides::ConstraintWeightOverrides;
pub use api::weight_overrides::WeightProvider;
pub use director::typed::TypedScoreDirector;
pub use director::RecordingScoreDirector;
pub use director::ScoreDirector;
pub use director::ScoreDirectorFactory;
pub use director::ShadowAwareScoreDirector;
pub use director::ShadowVariableSupport;
pub use director::SimpleScoreDirector;
pub use director::SolvableSolution;
pub use api::analysis::ConstraintAnalysis;
pub use api::analysis::ConstraintJustification;
pub use api::analysis::DetailedConstraintEvaluation;
pub use api::analysis::DetailedConstraintMatch;
pub use api::analysis::EntityRef;
pub use api::analysis::Indictment;
pub use api::analysis::IndictmentMap;
pub use api::analysis::ScoreExplanation;
pub use stream::BiConstraintBuilder;
pub use stream::BiConstraintStream;
pub use stream::ConstraintFactory;
pub use stream::GroupedConstraintBuilder;
pub use stream::GroupedConstraintStream;
pub use stream::UniConstraintBuilder;
pub use stream::UniConstraintStream;

Modules§

api
Zero-erasure constraint API.
constraint
Zero-erasure typed constraint infrastructure.
director
Score director implementations.
stream
Fluent constraint stream API for zero-erasure constraint programming.

Macros§

impl_get_matches_nary
Generates get_matches() implementation for N-ary self-join constraints.
impl_incremental_nary_constraint
Generates an incremental N-ary constraint struct and implementations.