pub trait Graph<'a> {
type Node: Vertex;
type Edge: Eq + Hash + Clone + IdPair;
// Required methods
fn new() -> Self;
fn nodes(&'a self) -> impl Iterator<Item = &'a Self::Node>;
fn edges(&'a self) -> impl Iterator<Item = &'a Self::Edge>;
fn add_node(&mut self, node: Self::Node);
fn add_edge(&mut self, edge: Self::Edge);
// Provided methods
fn get_edges_pair(
&'a self,
) -> impl Iterator<Item = (&'a Self::Node, &'a Self::Node)> { ... }
fn get_edges_pair_with_edge(
&'a self,
) -> impl Iterator<Item = (&'a Self::Node, &'a Self::Edge, &'a Self::Node)> { ... }
}
Required Associated Types§
Required Methods§
fn new() -> Self
fn nodes(&'a self) -> impl Iterator<Item = &'a Self::Node>
fn edges(&'a self) -> impl Iterator<Item = &'a Self::Edge>
fn add_node(&mut self, node: Self::Node)
fn add_edge(&mut self, edge: Self::Edge)
Provided Methods§
fn get_edges_pair( &'a self, ) -> impl Iterator<Item = (&'a Self::Node, &'a Self::Node)>
fn get_edges_pair_with_edge( &'a self, ) -> impl Iterator<Item = (&'a Self::Node, &'a Self::Edge, &'a Self::Node)>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.