Spaces:
Sleeping
Sleeping
File size: 1,262 Bytes
7596726 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | //! Constraint assembly for employee scheduling.
//!
//! Each sibling module contributes one named rule. `create_constraints()`
//! simply lists them in the order we want them to appear in analysis output.
use crate::domain::Plan;
use solverforge::prelude::*;
pub use self::assemble::create_constraints;
// @solverforge:begin constraint-modules
mod assigned_shift;
mod balance_assignments;
mod desired_day;
mod minimum_rest;
mod one_shift_per_day;
mod overlapping_shift;
mod required_skill;
mod unavailable_employee;
mod undesired_day;
// @solverforge:end constraint-modules
mod assemble {
use super::*;
/// Collects the full scoring model used by `Plan`.
pub fn create_constraints() -> impl ConstraintSet<Plan, HardSoftDecimalScore> {
// @solverforge:begin constraint-calls
(
assigned_shift::constraint(),
required_skill::constraint(),
overlapping_shift::constraint(),
minimum_rest::constraint(),
one_shift_per_day::constraint(),
unavailable_employee::constraint(),
undesired_day::constraint(),
desired_day::constraint(),
balance_assignments::constraint(),
)
// @solverforge:end constraint-calls
}
}
|