Skip to main content

MoveCursor

Trait MoveCursor 

Source
pub trait MoveCursor<S: PlanningSolution, M: Move<S>> {
    // Required methods
    fn next_candidate(&mut self) -> Option<CandidateId>;
    fn candidate(&self, id: CandidateId) -> Option<MoveCandidateRef<'_, S, M>>;
    fn take_candidate(&mut self, id: CandidateId) -> M;

    // Provided method
    fn selector_index(&self, _id: CandidateId) -> Option<usize> { ... }
}

Required Methods§

Provided Methods§

Implementors§

Source§

impl<S> MoveCursor<S, ScalarMoveUnion<S, usize>> for ConflictRepairCursor<S>
where S: PlanningSolution + 'static,

Source§

impl<S> MoveCursor<S, ScalarMoveUnion<S, usize>> for GroupedScalarCursor<S>
where S: PlanningSolution + 'static,

Source§

impl<S, M> MoveCursor<S, M> for ArenaMoveCursor<S, M>
where S: PlanningSolution, M: Move<S>,

Source§

impl<S, V, DM, IDM> MoveCursor<S, NeighborhoodMove<S, V>> for CartesianChildCursor<'_, S, V, DM, IDM>
where S: PlanningSolution + 'static, V: Clone + PartialEq + Send + Sync + Debug + 'static, DM: CrossEntityDistanceMeter<S> + Clone + Debug + 'static, IDM: CrossEntityDistanceMeter<S> + Clone + Debug + 'static,

Source§

impl<S, V, DM, IDM> MoveCursor<S, NeighborhoodMove<S, V>> for NeighborhoodCursor<'_, S, V, DM, IDM>
where S: PlanningSolution + 'static, V: Clone + PartialEq + Send + Sync + Debug + 'static, DM: CrossEntityDistanceMeter<S> + Clone + Debug + 'static, IDM: CrossEntityDistanceMeter<S> + Clone + Debug + 'static,

Source§

impl<S, V, DM, IDM> MoveCursor<S, NeighborhoodMove<S, V>> for NeighborhoodLeafCursor<'_, S, V, DM, IDM>
where S: PlanningSolution + 'static, V: Clone + PartialEq + Send + Sync + Debug + 'static, DM: CrossEntityDistanceMeter<S> + Clone + Debug + 'static, IDM: CrossEntityDistanceMeter<S> + Clone + Debug + 'static,