solverforge_solver/builder/
selector.rs1use std::fmt::Debug;
2
3use solverforge_config::{AcceptorConfig, LocalSearchConfig, LocalSearchType, MoveSelectorConfig};
4use solverforge_core::domain::PlanningSolution;
5use solverforge_core::score::{ParseableScore, Score};
6
7use crate::heuristic::r#move::{Move, ScalarMoveUnion};
8use crate::heuristic::selector::decorator::{CartesianProductSelector, VecUnionSelector};
9use crate::heuristic::selector::move_selector::{
10 CandidateId, MoveCandidateRef, MoveCursor, MoveSelector, MoveStreamContext,
11};
12use crate::heuristic::selector::nearby_list_change::CrossEntityDistanceMeter;
13use crate::heuristic::selector::{DynamicListChangeMoveSelector, DynamicScalarChangeMoveSelector};
14use crate::phase::localsearch::LocalSearchPhase;
15use crate::phase::localsearch::VndPhase;
16use crate::phase::Phase;
17use crate::scope::{ProgressCallback, SolverScope};
18
19use super::acceptor::{AcceptorBuilder, AnyAcceptor};
20use super::context::RuntimeModel;
21use super::forager::{AnyForager, ForagerBuilder};
22use super::list_selector::ListMoveSelectorBuilder;
23use super::scalar_selector::build_scalar_flat_selector;
24
25include!("selector/conflict_repair.rs");
26include!("selector/grouped_scalar.rs");
27mod types;
28use types::LeafSelector;
29pub use types::{
30 CartesianChildCursor, CartesianChildSelector, Neighborhood, NeighborhoodCursor,
31 NeighborhoodLeaf, NeighborhoodLeafCursor, NeighborhoodMove,
32};
33include!("selector/families.rs");
34include!("selector/build.rs");