pub trait UndirectedGraphView {
type Node: Copy + Eq + Hash;
type Edge: Copy + Eq + Hash;
// Required methods
fn node_count(&self) -> usize;
fn edge_count(&self) -> usize;
fn contains_node(&self, node: Self::Node) -> bool;
fn contains_edge(&self, edge: Self::Edge) -> bool;
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 incident_edges(
&self,
node: Self::Node,
) -> impl DoubleEndedIterator<Item = Self::Edge> + ExactSizeIterator + '_;
// Provided method
fn opposite(&self, edge: Self::Edge, node: Self::Node) -> Option<Self::Node> { ... }
}Required Associated Types§
Required Methods§
fn node_count(&self) -> usize
fn edge_count(&self) -> usize
fn contains_node(&self, node: Self::Node) -> bool
fn contains_edge(&self, edge: Self::Edge) -> bool
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 incident_edges( &self, node: Self::Node, ) -> impl DoubleEndedIterator<Item = Self::Edge> + ExactSizeIterator + '_
Provided Methods§
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".