pub enum DijkstraEvent<N, E, K> {
Discover(N, K),
ExamineEdge(N, N, E),
EdgeRelaxed(N, N, E),
EdgeNotRelaxed(N, N, E),
Finish(N),
}
Expand description
A dijkstra search visitor event.
Variants§
Discover(N, K)
This is invoked when a vertex is encountered for the first time and it’s popped from the queue. Together with the node, we report the optimal distance of the node.
ExamineEdge(N, N, E)
This is invoked on every out-edge of each vertex after it is discovered.
EdgeRelaxed(N, N, E)
Upon examination, if the distance of the target of the edge is reduced, this event is emitted.
EdgeNotRelaxed(N, N, E)
Upon examination, if the edge is not relaxed, this event is emitted.
Finish(N)
All edges from a node have been reported.
Trait Implementations§
Source§impl<N: Clone, E: Clone, K: Clone> Clone for DijkstraEvent<N, E, K>
impl<N: Clone, E: Clone, K: Clone> Clone for DijkstraEvent<N, E, K>
Source§fn clone(&self) -> DijkstraEvent<N, E, K>
fn clone(&self) -> DijkstraEvent<N, E, K>
Returns a copy of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreimpl<N: Copy, E: Copy, K: Copy> Copy for DijkstraEvent<N, E, K>
Auto Trait Implementations§
impl<N, E, K> Freeze for DijkstraEvent<N, E, K>
impl<N, E, K> RefUnwindSafe for DijkstraEvent<N, E, K>
impl<N, E, K> Send for DijkstraEvent<N, E, K>
impl<N, E, K> Sync for DijkstraEvent<N, E, K>
impl<N, E, K> Unpin for DijkstraEvent<N, E, K>
impl<N, E, K> UnwindSafe for DijkstraEvent<N, E, K>
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more