[−][src]Enum rustc_data_structures::graph::scc::NodeState

pub(in graph::scc) 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

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.

Fields of BeingVisited

depth: usize
InCycle

Indicates that this node is a member of the given cycle.

Fields of InCycle

scc_index: S
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).

Fields of InCycleWith

parent: N

Trait Implementations

impl<N: Clone, S: Clone> Clone for NodeState<N, S>[src]

impl<N: Copy, S: Copy> Copy for NodeState<N, S>[src]

impl<N: Debug, S: Debug> Debug for NodeState<N, S>[src]

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

impl<T> Any for T where
    T: 'static + ?Sized, 
[src]

impl<T> Borrow<T> for T where
    T: ?Sized, 
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized, 
[src]

impl<'a, T> Captures<'a> for T where
    T: ?Sized, 
[src]

impl<T> Erased for T[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T> ToOwned for T where
    T: Clone, 
[src]

type Owned = T

The resulting type after obtaining ownership.

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.