pub trait GraphView {
type Node: Copy + Eq + Hash;
type Edge: Copy + Eq + Hash;
// Required methods
fn node_count(&self) -> usize;
fn edge_count(&self) -> usize;
fn node_indices(&self) -> impl Iterator<Item = Self::Node> + '_;
fn edge_indices(&self) -> impl Iterator<Item = Self::Edge> + '_;
fn edge_endpoints(
&self,
edge: Self::Edge,
) -> Option<EdgeEndpoints<Self::Node>>;
fn outgoing_edges(
&self,
node: Self::Node,
) -> impl Iterator<Item = Self::Edge> + '_;
fn incoming_edges(
&self,
node: Self::Node,
) -> impl Iterator<Item = Self::Edge> + '_;
// Provided methods
fn contains_node(&self, node: Self::Node) -> bool { ... }
fn contains_edge(&self, edge: Self::Edge) -> bool { ... }
fn edge_references(
&self,
) -> impl Iterator<Item = (Self::Edge, EdgeEndpoints<Self::Node>)> + '_ { ... }
}Required Associated Types§
Required Methods§
fn node_count(&self) -> usize
fn edge_count(&self) -> usize
fn node_indices(&self) -> impl Iterator<Item = Self::Node> + '_
fn edge_indices(&self) -> impl Iterator<Item = Self::Edge> + '_
fn edge_endpoints(&self, edge: Self::Edge) -> Option<EdgeEndpoints<Self::Node>>
fn outgoing_edges( &self, node: Self::Node, ) -> impl Iterator<Item = Self::Edge> + '_
fn incoming_edges( &self, node: Self::Node, ) -> impl Iterator<Item = Self::Edge> + '_
Provided Methods§
fn contains_node(&self, node: Self::Node) -> bool
fn contains_edge(&self, edge: Self::Edge) -> bool
fn edge_references( &self, ) -> impl Iterator<Item = (Self::Edge, EdgeEndpoints<Self::Node>)> + '_
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".