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 dynamic;
12mod entity_ref;
13pub mod listener;
14pub mod supply;
15mod traits;
16mod value_range;
17mod variable;
18
19#[cfg(test)]
20mod tests;
21
22pub use descriptor::{
23    EntityClassId, EntityDescriptor, ProblemFactClassId, ProblemFactDescriptor, SolutionDescriptor,
24    UsizeCandidateValues, UsizeConstructionEntityOrderKey, UsizeConstructionValueOrderKey,
25    UsizeEntityValueProvider, UsizeGetter, UsizeNearbyEntityDistanceMeter,
26    UsizeNearbyValueDistanceMeter, UsizeSearchEntityOrderKey, UsizeSearchValueOrderKey,
27    UsizeSetter, VariableDescriptor, VariableId,
28};
29pub use dynamic::{
30    DynamicListAccess, DynamicListAccessCapabilities, DynamicListMetadata,
31    DynamicListMetadataCapabilities, DynamicListVariableSlot, DynamicModelBackend,
32    DynamicScalarAccess, DynamicScalarAssignmentMetadata,
33    DynamicScalarAssignmentMetadataCapabilities, DynamicScalarVariableSlot,
34};
35pub use entity_ref::{EntityCollectionExtractor, EntityExtractor, EntityRef};
36pub use listener::{
37    ListVariableListener, ListVariableNotification, VariableListener, VariableNotification,
38};
39pub use supply::{ElementPosition, InverseSupply, ListStateSupply};
40pub use traits::{ListVariableSolution, PlanningEntity, PlanningId, PlanningSolution, ProblemFact};
41pub use value_range::{
42    ComputedValueRangeProvider, FieldValueRangeProvider, IntegerRange, StaticValueRange,
43    ValueRangeProvider,
44};
45pub use variable::{ShadowVariableKind, ValueRangeType, VariableType};