solverforge_solver/
model_support.rs1use solverforge_core::domain::{PlanningSolution, SolutionDescriptor};
2
3use crate::builder::ScalarVariableContext;
4
5pub trait PlanningModelSupport: PlanningSolution + Sized + 'static {
6 fn attach_descriptor_scalar_hooks(descriptor: &mut SolutionDescriptor);
7
8 fn attach_runtime_scalar_hooks(
9 context: ScalarVariableContext<Self>,
10 ) -> ScalarVariableContext<Self>;
11
12 fn validate_model(descriptor: &SolutionDescriptor);
13
14 fn update_entity_shadows(
15 solution: &mut Self,
16 descriptor_index: usize,
17 entity_index: usize,
18 ) -> bool;
19
20 fn update_all_shadows(solution: &mut Self) -> bool;
21}