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 phase_factory;
12mod phase_factory_trait;
13mod solution_manager;
14mod solver_factory;
15mod solver_manager;
16
17#[cfg(test)]
18mod builder_tests;
19#[cfg(test)]
20mod mod_tests;
21#[cfg(test)]
22mod mod_tests_integration;
23
24pub use builder::{SolverBuildError, SolverFactoryBuilder};
25pub(crate) use phase_factory::{
26    run_cheapest, run_clarke_wright, run_list_k_opt, run_regret, run_round_robin,
27    PhaseCheapestInsertionObserver, ScoredListConstructionAccess,
28};
29#[cfg(test)]
30pub(crate) use phase_factory::{CheapestInsertionObserver, CheapestInsertionTrial};
31pub use phase_factory::{
32    ConstructionPhaseFactory, KOptPhase, KOptPhaseBuilder, ListCheapestInsertionPhase,
33    ListClarkeWrightPhase, ListConstructionPhase, ListConstructionPhaseBuilder, ListKOptPhase,
34    ListRegretInsertionPhase, LocalSearchPhaseFactory,
35};
36pub use phase_factory_trait::PhaseFactory;
37pub use solution_manager::{analyze, Analyzable, ConstraintAnalysis, ScoreAnalysis};
38pub use solver_factory::{solver_factory_builder, SolverFactory};
39pub use solver_manager::{
40    Solvable, SolverEvent, SolverEventMetadata, SolverLifecycleState, SolverManager,
41    SolverManagerError, SolverPanicPayload, SolverRuntime, SolverSnapshot, SolverSnapshotAnalysis,
42    SolverStatus, SolverTelemetryDetail, SolverTerminalReason,
43};