Skip to main content

solverforge_solver/builder/
mod.rs

1/* Builder module for constructing solver components from configuration.
2
3Provides wiring between `SolverConfig` and the actual solver types.
4All builders return concrete monomorphized enums — no `Box<dyn Trait>`.
5*/
6
7pub mod acceptor;
8pub mod context;
9pub mod forager;
10pub mod search;
11pub(crate) mod selector;
12
13pub use acceptor::{AcceptorBuilder, AnyAcceptor};
14pub use context::{
15    bind_scalar_groups, usize_element_source_key, ConflictRepair, IntraDistanceAdapter,
16    ListVariableSlot, RepairCandidate, RepairLimits, RuntimeCandidateMetric,
17    RuntimeCandidateMetricBinding, RuntimeCandidateMetricRegistry, RuntimeHostCompoundProvider,
18    RuntimeHostProviderErrorBoundary, RuntimeModel, RuntimeProviderHandle, RuntimeProviderLimits,
19    RuntimeProviderRegistry, RuntimeScalarEdit, RuntimeScalarSlot, RuntimeScalarSlotId,
20    ScalarAccessCapability, ScalarAssignmentBinding, ScalarCandidate, ScalarEdit,
21    ScalarGroupBinding, ScalarGroupBindingKind, ScalarGroupLimits, ScalarGroupMemberBinding,
22    ScalarVariableSlot, StaticConflictRepairProviderBinding, StaticScalarGroupProviderBinding,
23    ValueSource, VariableSlot,
24};
25pub use forager::{AnyForager, ForagerBuilder};
26pub use search::{
27    local_search, CustomSearchPhase, NoDynamicExtensions, NoTypedExtensions,
28    RuntimeExtensionPolicy, RuntimeExtensionRegistry, Search, SearchContext,
29};