Enum rustc_data_structures::graph::scc::WalkReturn
source · enum WalkReturn<S, A> {
Cycle {
min_depth: usize,
annotation: A,
},
Complete {
scc_index: S,
annotation: A,
},
}
Expand description
The state of walking a given node.
Variants§
Cycle
The walk found a cycle, but the entire component is not known to have
been fully walked yet. We only know the minimum depth of this
component in a minimum spanning tree of the graph. This component
is tentatively represented by the state of the first node of this
cycle we met, which is at min_depth
.
Complete
The SCC and everything reachable from it have been fully walked. At this point we know what is inside the SCC as we have visited every node reachable from it. The SCC can now be fully represented by its ID.
Trait Implementations§
source§impl<S: Clone, A: Clone> Clone for WalkReturn<S, A>
impl<S: Clone, A: Clone> Clone for WalkReturn<S, A>
source§fn clone(&self) -> WalkReturn<S, A>
fn clone(&self) -> WalkReturn<S, A>
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<S: Copy, A: Copy> Copy for WalkReturn<S, A>
Auto Trait Implementations§
impl<S, A> Freeze for WalkReturn<S, A>
impl<S, A> RefUnwindSafe for WalkReturn<S, A>where
A: RefUnwindSafe,
S: RefUnwindSafe,
impl<S, A> Send for WalkReturn<S, A>
impl<S, A> Sync for WalkReturn<S, A>
impl<S, A> Unpin for WalkReturn<S, A>
impl<S, A> UnwindSafe for WalkReturn<S, A>where
A: UnwindSafe,
S: UnwindSafe,
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§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> Instrument for T
impl<T> Instrument for T
source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moresource§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
impl<'a, T> Captures<'a> for Twhere
T: ?Sized,
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.