pub struct Cycles<'g> { /* private fields */ }
Expand description
Contains information about dependency cycles in feature graphs.
Cargo permits cycles if at least one of the links is dev-only. Cycles
exposes information
about such dependencies.
Constructed through PackageGraph::cycles
.
Implementations§
source§impl<'g> Cycles<'g>
impl<'g> Cycles<'g>
sourcepub fn is_cyclic<'a>(
&self,
a: impl Into<FeatureId<'a>>,
b: impl Into<FeatureId<'a>>
) -> Result<bool, Error>
pub fn is_cyclic<'a>(
&self,
a: impl Into<FeatureId<'a>>,
b: impl Into<FeatureId<'a>>
) -> Result<bool, Error>
Returns true if these two IDs are in the same cycle.
sourcepub fn all_cycles(&self) -> impl Iterator<Item = Vec<FeatureId<'g>>> + 'g
pub fn all_cycles(&self) -> impl Iterator<Item = Vec<FeatureId<'g>>> + 'g
Returns all the cycles of 2 or more elements in this graph.
Cycles are returned in topological order: if features in cycle B depend on features in cycle A, A is returned before B.
Within a cycle, nodes are returned in non-dev order: if feature Foo has a dependency on Bar, and Bar has a dev-dependency on Foo, then Foo is returned before Bar.