Skip to main content

solverforge_solver/manager/
mod.rs

1/* High-level solver management with zero-erasure API.
2
3# Zero-Erasure Design
4
5All types flow through generics - no Box, Arc, or dyn anywhere.
6Runtime configuration from TOML/YAML is handled by the macro layer
7which generates concrete types at compile time.
8*/
9
10mod builder;
11mod config;
12mod phase_factory;
13mod phase_factory_trait;
14mod solution_manager;
15mod solver_factory;
16mod solver_manager;
17
18#[cfg(test)]
19mod builder_tests;
20#[cfg(test)]
21mod mod_tests;
22#[cfg(test)]
23mod mod_tests_integration;
24
25pub use builder::{SolverBuildError, SolverFactoryBuilder};
26pub use config::{ConstructionType, LocalSearchAcceptorType, PhaseConfig};
27pub(crate) use phase_factory::{
28    run_cheapest, run_clarke_wright, run_list_k_opt, run_regret, run_round_robin,
29    PhaseCheapestInsertionObserver, ScoredListConstructionAccess,
30};
31#[cfg(test)]
32pub(crate) use phase_factory::{CheapestInsertionObserver, CheapestInsertionTrial};
33pub use phase_factory::{
34    ConstructionPhaseFactory, KOptPhase, KOptPhaseBuilder, ListCheapestInsertionPhase,
35    ListClarkeWrightPhase, ListConstructionPhase, ListConstructionPhaseBuilder, ListKOptPhase,
36    ListRegretInsertionPhase, LocalSearchPhaseFactory,
37};
38pub use phase_factory_trait::PhaseFactory;
39pub use solution_manager::{analyze, Analyzable, ConstraintAnalysis, ScoreAnalysis};
40pub use solver_factory::{solver_factory_builder, SolverFactory};
41pub use solver_manager::{
42    Solvable, SolverEvent, SolverEventMetadata, SolverLifecycleState, SolverManager,
43    SolverManagerError, SolverPanicPayload, SolverRuntime, SolverSnapshot, SolverSnapshotAnalysis,
44    SolverStatus, SolverTelemetryDetail, SolverTerminalReason,
45};