Skip to main content

solverforge_core/domain/
mod.rs

1/* Domain model traits for defining planning problems
2
3These traits define the structure of a planning problem:
4- `PlanningSolution`: The container for the complete problem and solution
5- `PlanningEntity`: Things that can be planned/optimized
6- `ProblemFact`: Immutable input data
7- `PlanningId`: Unique identification for entities
8*/
9
10mod descriptor;
11mod entity_ref;
12pub mod listener;
13pub mod supply;
14mod traits;
15mod value_range;
16mod variable;
17
18#[cfg(test)]
19mod tests;
20
21pub use descriptor::{
22    EntityDescriptor, ProblemFactDescriptor, SolutionDescriptor, UsizeConstructionEntityOrderKey,
23    UsizeConstructionValueOrderKey, UsizeEntityValueProvider, UsizeGetter,
24    UsizeNearbyEntityDistanceMeter, UsizeNearbyValueDistanceMeter, UsizeSetter, VariableDescriptor,
25};
26pub use entity_ref::{EntityCollectionExtractor, EntityExtractor, EntityRef};
27pub use listener::{
28    ListVariableListener, ListVariableNotification, VariableListener, VariableNotification,
29};
30pub use supply::{AnchorSupply, ElementPosition, InverseSupply, ListStateSupply};
31pub use traits::{ListVariableSolution, PlanningEntity, PlanningId, PlanningSolution, ProblemFact};
32pub use value_range::{
33    ComputedValueRangeProvider, FieldValueRangeProvider, IntegerRange, StaticValueRange,
34    ValueRangeProvider,
35};
36pub use variable::{ChainedVariableInfo, ShadowVariableKind, ValueRangeType, VariableType};