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 duplicate 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