Termination

Trait Termination 

Source
pub trait Termination<S: PlanningSolution, D: ScoreDirector<S>>: Send + Debug {
    // Required method
    fn is_terminated(&self, solver_scope: &SolverScope<'_, S, D>) -> bool;
}
Expand description

Trait for determining when to stop solving.

§Type Parameters

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

Required Methods§

Source

fn is_terminated(&self, solver_scope: &SolverScope<'_, S, D>) -> bool

Returns true if solving should terminate.

Implementors§

Source§

impl<S, D, F> Termination<S, D> for BestScoreFeasibleTermination<S, F>
where S: PlanningSolution, D: ScoreDirector<S>, F: Fn(&S::Score) -> bool + Send + Sync,

Source§

impl<S, D, Sc> Termination<S, D> for BestScoreTermination<Sc>
where S: PlanningSolution<Score = Sc>, D: ScoreDirector<S>, Sc: Score,

Source§

impl<S, D, T0> Termination<S, D> for AndTermination<(T0,), S, D>
where S: PlanningSolution, D: ScoreDirector<S>, T0: Termination<S, D>,

Source§

impl<S, D, T0> Termination<S, D> for OrTermination<(T0,), S, D>
where S: PlanningSolution, D: ScoreDirector<S>, T0: Termination<S, D>,

Source§

impl<S, D, T0, T1> Termination<S, D> for AndTermination<(T0, T1), S, D>
where S: PlanningSolution, D: ScoreDirector<S>, T0: Termination<S, D>, T1: Termination<S, D>,

Source§

impl<S, D, T0, T1> Termination<S, D> for OrTermination<(T0, T1), S, D>
where S: PlanningSolution, D: ScoreDirector<S>, T0: Termination<S, D>, T1: Termination<S, D>,

Source§

impl<S, D, T0, T1, T2> Termination<S, D> for AndTermination<(T0, T1, T2), S, D>
where S: PlanningSolution, D: ScoreDirector<S>, T0: Termination<S, D>, T1: Termination<S, D>, T2: Termination<S, D>,

Source§

impl<S, D, T0, T1, T2> Termination<S, D> for OrTermination<(T0, T1, T2), S, D>
where S: PlanningSolution, D: ScoreDirector<S>, T0: Termination<S, D>, T1: Termination<S, D>, T2: Termination<S, D>,

Source§

impl<S, D, T0, T1, T2, T3> Termination<S, D> for AndTermination<(T0, T1, T2, T3), S, D>
where S: PlanningSolution, D: ScoreDirector<S>, T0: Termination<S, D>, T1: Termination<S, D>, T2: Termination<S, D>, T3: Termination<S, D>,

Source§

impl<S, D, T0, T1, T2, T3> Termination<S, D> for OrTermination<(T0, T1, T2, T3), S, D>
where S: PlanningSolution, D: ScoreDirector<S>, T0: Termination<S, D>, T1: Termination<S, D>, T2: Termination<S, D>, T3: Termination<S, D>,

Source§

impl<S, D, T0, T1, T2, T3, T4> Termination<S, D> for AndTermination<(T0, T1, T2, T3, T4), S, D>
where S: PlanningSolution, D: ScoreDirector<S>, T0: Termination<S, D>, T1: Termination<S, D>, T2: Termination<S, D>, T3: Termination<S, D>, T4: Termination<S, D>,

Source§

impl<S, D, T0, T1, T2, T3, T4> Termination<S, D> for OrTermination<(T0, T1, T2, T3, T4), S, D>
where S: PlanningSolution, D: ScoreDirector<S>, T0: Termination<S, D>, T1: Termination<S, D>, T2: Termination<S, D>, T3: Termination<S, D>, T4: Termination<S, D>,

Source§

impl<S, D, T0, T1, T2, T3, T4, T5> Termination<S, D> for AndTermination<(T0, T1, T2, T3, T4, T5), S, D>
where S: PlanningSolution, D: ScoreDirector<S>, T0: Termination<S, D>, T1: Termination<S, D>, T2: Termination<S, D>, T3: Termination<S, D>, T4: Termination<S, D>, T5: Termination<S, D>,

Source§

impl<S, D, T0, T1, T2, T3, T4, T5> Termination<S, D> for OrTermination<(T0, T1, T2, T3, T4, T5), S, D>
where S: PlanningSolution, D: ScoreDirector<S>, T0: Termination<S, D>, T1: Termination<S, D>, T2: Termination<S, D>, T3: Termination<S, D>, T4: Termination<S, D>, T5: Termination<S, D>,

Source§

impl<S, D, T0, T1, T2, T3, T4, T5, T6> Termination<S, D> for AndTermination<(T0, T1, T2, T3, T4, T5, T6), S, D>
where S: PlanningSolution, D: ScoreDirector<S>, T0: Termination<S, D>, T1: Termination<S, D>, T2: Termination<S, D>, T3: Termination<S, D>, T4: Termination<S, D>, T5: Termination<S, D>, T6: Termination<S, D>,

Source§

impl<S, D, T0, T1, T2, T3, T4, T5, T6> Termination<S, D> for OrTermination<(T0, T1, T2, T3, T4, T5, T6), S, D>
where S: PlanningSolution, D: ScoreDirector<S>, T0: Termination<S, D>, T1: Termination<S, D>, T2: Termination<S, D>, T3: Termination<S, D>, T4: Termination<S, D>, T5: Termination<S, D>, T6: Termination<S, D>,

Source§

impl<S, D, T0, T1, T2, T3, T4, T5, T6, T7> Termination<S, D> for AndTermination<(T0, T1, T2, T3, T4, T5, T6, T7), S, D>
where S: PlanningSolution, D: ScoreDirector<S>, T0: Termination<S, D>, T1: Termination<S, D>, T2: Termination<S, D>, T3: Termination<S, D>, T4: Termination<S, D>, T5: Termination<S, D>, T6: Termination<S, D>, T7: Termination<S, D>,

Source§

impl<S, D, T0, T1, T2, T3, T4, T5, T6, T7> Termination<S, D> for OrTermination<(T0, T1, T2, T3, T4, T5, T6, T7), S, D>
where S: PlanningSolution, D: ScoreDirector<S>, T0: Termination<S, D>, T1: Termination<S, D>, T2: Termination<S, D>, T3: Termination<S, D>, T4: Termination<S, D>, T5: Termination<S, D>, T6: Termination<S, D>, T7: Termination<S, D>,

Source§

impl<S: PlanningSolution, D: ScoreDirector<S>> Termination<S, D> for NoTermination

Source§

impl<S: PlanningSolution, D: ScoreDirector<S>> Termination<S, D> for DiminishedReturnsTermination<S>

Source§

impl<S: PlanningSolution, D: ScoreDirector<S>> Termination<S, D> for MoveCountTermination<S>

Source§

impl<S: PlanningSolution, D: ScoreDirector<S>> Termination<S, D> for ScoreCalculationCountTermination<S>

Source§

impl<S: PlanningSolution, D: ScoreDirector<S>> Termination<S, D> for StepCountTermination

Source§

impl<S: PlanningSolution, D: ScoreDirector<S>> Termination<S, D> for TimeTermination

Source§

impl<S: PlanningSolution, D: ScoreDirector<S>> Termination<S, D> for UnimprovedStepCountTermination<S>

Source§

impl<S: PlanningSolution, D: ScoreDirector<S>> Termination<S, D> for UnimprovedTimeTermination<S>