solverforge_solver/manager/
mod.rs1mod builder;
10mod config;
11mod phase_factory;
12mod solution_manager;
13mod solver_factory;
14mod solver_manager;
15
16#[cfg(test)]
17mod builder_tests;
18#[cfg(test)]
19mod mod_tests;
20#[cfg(test)]
21mod mod_tests_integration;
22
23pub use builder::{SolverBuildError, SolverFactoryBuilder};
24pub use config::{ConstructionType, LocalSearchType, PhaseConfig};
25pub use phase_factory::{
26 ConstructionPhaseFactory, KOptPhase, KOptPhaseBuilder, ListCheapestInsertionPhase,
27 ListConstructionPhase, ListConstructionPhaseBuilder, ListRegretInsertionPhase,
28 LocalSearchPhaseFactory,
29};
30pub use solution_manager::{Analyzable, ConstraintAnalysis, ScoreAnalysis, SolutionManager};
31pub use solver_factory::{solver_factory_builder, SolverFactory};
32pub use solver_manager::{Solvable, SolverManager, SolverStatus};
33
34use solverforge_core::domain::PlanningSolution;
35use solverforge_scoring::ScoreDirector;
36
37use crate::phase::Phase;
38
39pub trait PhaseFactory<S, D>: Send + Sync
49where
50 S: PlanningSolution,
51 D: ScoreDirector<S>,
52{
53 type Phase: Phase<S, D>;
55
56 fn create(&self) -> Self::Phase;
58}