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, ListConstructionPhase,
27 ListConstructionPhaseBuilder, LocalSearchPhaseFactory,
28};
29pub use solution_manager::{Analyzable, ConstraintAnalysis, ScoreAnalysis, SolutionManager};
30pub use solver_factory::{solver_factory_builder, SolverFactory};
31pub use solver_manager::{Solvable, SolverManager, SolverStatus};
32
33use solverforge_core::domain::PlanningSolution;
34use solverforge_scoring::ScoreDirector;
35
36use crate::phase::Phase;
37
38pub trait PhaseFactory<S, D>: Send + Sync
48where
49 S: PlanningSolution,
50 D: ScoreDirector<S>,
51{
52 type Phase: Phase<S, D>;
54
55 fn create(&self) -> Self::Phase;
57}