Struct rustc_data_structures::graph::scc::Sccs [−][src]
Expand description
Strongly connected components (SCC) of a graph. The type N
is
the index type for the graph nodes and S
is the index type for
the SCCs. We can map from each node to the SCC that it
participates in, and we also have the successors of each SCC.
Fields
scc_indices: IndexVec<N, S>
For each node, what is the SCC index of the SCC to which it belongs.
scc_data: SccData<S>
Data about each SCC.
Implementations
Returns an iterator over the SCCs in the graph.
The SCCs will be iterated in dependency order (or post order),
meaning that if S1 -> S2
, we will visit S2
first and S1
after.
This is convenient when the edges represent dependencies: when you visit
S1
, the value for S2
will already have been computed.
Returns the successors of the given SCC.
Trait Implementations
fn successors(&self, node: S) -> Cloned<Iter<'_, S>>ⓘ
fn depth_first_search(&self, from: Self::Node) -> DepthFirstSearch<'_, Self>ⓘNotable traits for DepthFirstSearch<'_, G>impl<G> Iterator for DepthFirstSearch<'_, G> where
G: ?Sized + DirectedGraph + WithNumNodes + WithSuccessors, type Item = G::Node;
where
Self: WithNumNodes,
impl<G> Iterator for DepthFirstSearch<'_, G> where
G: ?Sized + DirectedGraph + WithNumNodes + WithSuccessors, type Item = G::Node;
Auto Trait Implementations
impl<N, S> RefUnwindSafe for Sccs<N, S> where
S: RefUnwindSafe,
impl<N, S> UnwindSafe for Sccs<N, S> where
S: UnwindSafe,
Blanket Implementations
Layout
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size: 72 bytes