enum NodeState<N, S> {
NotVisited,
BeingVisited {
depth: usize,
},
InCycle {
scc_index: S,
},
InCycleWith {
parent: N,
},
}
Variants
NotVisited
This node has not yet been visited as part of the DFS.
After SCC construction is complete, this state ought to be impossible.
BeingVisited
Fields
depth: usize
This node is currently being walk as part of our DFS. It is on
the stack at the depth depth
.
After SCC construction is complete, this state ought to be impossible.
InCycle
Indicates that this node is a member of the given cycle.
InCycleWith
Indicates that this node is a member of whatever cycle
parent
is a member of. This state is transient: whenever we
see it, we try to overwrite it with the current state of
parent
(this is the “path compression” step of a union-find
algorithm).
Trait Implementations
impl<N: Copy, S: Copy> Copy for NodeState<N, S>
Auto Trait Implementations
impl<N, S> RefUnwindSafe for NodeState<N, S>where
N: RefUnwindSafe,
S: RefUnwindSafe,
impl<N, S> Send for NodeState<N, S>where
N: Send,
S: Send,
impl<N, S> Sync for NodeState<N, S>where
N: Sync,
S: Sync,
impl<N, S> Unpin for NodeState<N, S>where
N: Unpin,
S: Unpin,
impl<N, S> UnwindSafe for NodeState<N, S>where
N: UnwindSafe,
S: UnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
impl<T> Erased for T
Layout
Note: Unable to compute type layout, possibly due to this type having generic parameters. Layout can only be computed for concrete, fully-instantiated types.