//! Constraint assembly for delivery routing. //! //! Each sibling file contributes one named rule. `create_constraints()` lists //! them in the order we want beginners to see in score analysis output. use crate::domain::Plan; use solverforge::prelude::*; pub use self::assemble::create_constraints; // @solverforge:begin constraint-modules mod all_deliveries_assigned; mod delivery_time_windows; mod total_travel_time; mod vehicle_capacity; // @solverforge:end constraint-modules mod assemble { use super::*; /// Collects the full scoring model used by `Plan`. pub fn create_constraints() -> impl ConstraintSet { // @solverforge:begin constraint-calls ( all_deliveries_assigned::constraint(), vehicle_capacity::constraint(), delivery_time_windows::constraint(), total_travel_time::constraint(), ) // @solverforge:end constraint-calls } }