Skip to main content

UndirectedGraphView

Trait UndirectedGraphView 

Source
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§

Source

fn node_count(&self) -> usize

Source

fn edge_count(&self) -> usize

Source

fn contains_node(&self, node: Self::Node) -> bool

Source

fn contains_edge(&self, edge: Self::Edge) -> bool

Source

fn node_indices(&self) -> impl Iterator<Item = Self::Node> + '_

Source

fn edge_indices(&self) -> impl Iterator<Item = Self::Edge> + '_

Source

fn edge_endpoints(&self, edge: Self::Edge) -> Option<EdgeEndpoints<Self::Node>>

Source

fn incident_edges( &self, node: Self::Node, ) -> impl DoubleEndedIterator<Item = Self::Edge> + ExactSizeIterator + '_

Provided Methods§

Source

fn opposite(&self, edge: Self::Edge, node: Self::Node) -> Option<Self::Node>

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§