pub struct Graph<N: Clone, E: Clone> { /* private fields */ }
Implementations§
source§impl Graph<PackageId, HashSet<Dependency>>
impl Graph<PackageId, HashSet<Dependency>>
source§impl<N: Eq + Ord + Clone, E: Default + Clone> Graph<N, E>
impl<N: Eq + Ord + Clone, E: Default + Clone> Graph<N, E>
pub fn new() -> Graph<N, E>
pub fn add(&mut self, node: N)
pub fn link(&mut self, node: N, child: N) -> &mut E
pub fn contains<Q>(&self, k: &Q) -> boolwhere N: Borrow<Q>, Q: Ord + Eq + ?Sized,
pub fn edge(&self, from: &N, to: &N) -> Option<&E>
pub fn edges(&self, from: &N) -> impl Iterator<Item = (&N, &E)>
pub fn iter(&self) -> impl Iterator<Item = &N>
sourcepub fn is_path_from_to<'a>(&'a self, from: &'a N, to: &'a N) -> bool
pub fn is_path_from_to<'a>(&'a self, from: &'a N, to: &'a N) -> bool
Checks if there is a path from from
to to
.
sourcepub fn path_to_bottom<'a>(&'a self, pkg: &'a N) -> Vec<(&'a N, Option<&'a E>)>
pub fn path_to_bottom<'a>(&'a self, pkg: &'a N) -> Vec<(&'a N, Option<&'a E>)>
Resolves one of the paths from the given dependent package down to a leaf.
Each element contains a node along with an edge except the first one. The representation would look like:
(Node0,) -> (Node1, Edge01) -> (Node2, Edge12)…
sourcepub fn path_to_top<'a>(&'a self, pkg: &'a N) -> Vec<(&'a N, Option<&'a E>)>
pub fn path_to_top<'a>(&'a self, pkg: &'a N) -> Vec<(&'a N, Option<&'a E>)>
Resolves one of the paths from the given dependent package up to the root.
Each element contains a node along with an edge except the first one. The representation would look like:
(Node0,) -> (Node1, Edge01) -> (Node2, Edge12)…
Trait Implementations§
source§impl<N: Eq + Ord + Clone, E: Eq + Clone> PartialEq<Graph<N, E>> for Graph<N, E>
impl<N: Eq + Ord + Clone, E: Eq + Clone> PartialEq<Graph<N, E>> for Graph<N, E>
impl<N: Eq + Ord + Clone, E: Eq + Clone> Eq for Graph<N, E>
Auto Trait Implementations§
impl<N, E> RefUnwindSafe for Graph<N, E>where E: RefUnwindSafe, N: RefUnwindSafe,
impl<N, E> !Send for Graph<N, E>
impl<N, E> !Sync for Graph<N, E>
impl<N, E> Unpin for Graph<N, E>where E: Unpin, N: Unpin,
impl<N, E> UnwindSafe for Graph<N, E>where E: UnwindSafe + RefUnwindSafe, N: UnwindSafe + RefUnwindSafe,
Blanket Implementations§
source§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Checks if this value is equivalent to the given key. Read more
§impl<Q, K> Equivalent<K> for Qwhere
Q: Eq + ?Sized,
K: Borrow<Q> + ?Sized,
impl<Q, K> Equivalent<K> for Qwhere Q: Eq + ?Sized, K: Borrow<Q> + ?Sized,
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
Compare self to
key
and return true
if they are equal.