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.
Auto Trait Implementations§
impl<'g> Freeze for Cycles<'g>
impl<'g> RefUnwindSafe for Cycles<'g>
impl<'g> Send for Cycles<'g>
impl<'g> Sync for Cycles<'g>
impl<'g> Unpin for Cycles<'g>
impl<'g> UnwindSafe for Cycles<'g>
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> 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 more