PhaseFactory

Trait PhaseFactory 

Source
pub trait PhaseFactory<S, D>: Send + Sync{
    type Phase: Phase<S, D>;

    // Required method
    fn create(&self) -> Self::Phase;
}
Expand description

Factory trait for creating phases with zero type erasure.

Returns a concrete phase type via associated type, preserving full type information through the pipeline.

§Type Parameters

  • S - The solution type
  • D - The score director type

Required Associated Types§

Source

type Phase: Phase<S, D>

The concrete phase type produced by this factory.

Required Methods§

Source

fn create(&self) -> Self::Phase

Creates a new phase instance with concrete type.

Implementors§

Source§

impl<S, D, M, MS, A, Fo> PhaseFactory<S, D> for LocalSearchPhaseFactory<S, M, MS, A, Fo>
where S: PlanningSolution, D: ScoreDirector<S>, M: Move<S> + Send + Sync + 'static, MS: MoveSelector<S, M> + Clone + Send + Sync + 'static, A: Acceptor<S> + Clone + Send + Sync + 'static, Fo: LocalSearchForager<S, M> + Clone + Send + Sync + 'static,

Source§

type Phase = LocalSearchPhase<S, M, MS, A, Fo>

Source§

impl<S, D, M, P, Fo> PhaseFactory<S, D> for ConstructionPhaseFactory<S, M, P, Fo>
where S: PlanningSolution, D: ScoreDirector<S>, M: Move<S> + Clone + Send + Sync + 'static, P: EntityPlacer<S, M> + Clone + Send + Sync + 'static, Fo: ConstructionForager<S, M> + Clone + Send + Sync + 'static,

Source§

impl<S, E, D> PhaseFactory<S, D> for ListConstructionPhaseBuilder<S, E>
where S: PlanningSolution, E: Copy + PartialEq + Eq + Hash + Send + Sync + 'static, D: ScoreDirector<S>,

Source§

impl<S, V, DM, ESF, D> PhaseFactory<S, D> for KOptPhaseBuilder<S, V, DM, ESF>
where S: PlanningSolution, V: Clone + Send + Sync + Debug + 'static, DM: Send + Sync, ESF: Send + Sync, D: ScoreDirector<S>,