Skip to main content

WeightedGraph

Trait WeightedGraph 

Source
pub trait WeightedGraph {
    // Required methods
    fn num_nodes(&self) -> usize;
    fn num_edges(&self) -> usize;
    fn neighbors_with_weight<'a>(
        &'a self,
        node: usize,
    ) -> Box<dyn Iterator<Item = (usize, f32)> + 'a>;

    // Provided methods
    fn degree(&self, node: usize) -> usize { ... }
    fn weighted_degree(&self, node: usize) -> f32 { ... }
}
Expand description

Undirected weighted graph over contiguous node ids 0..num_nodes().

neighbors_with_weight yields each edge incident to node as (other_node, weight). The trait is deliberately boxed-iterator to keep object safety and let implementations pick whatever internal storage they already have (CSC, adjacency list, petgraph, etc.).

Required Methods§

Source

fn num_nodes(&self) -> usize

Source

fn num_edges(&self) -> usize

Source

fn neighbors_with_weight<'a>( &'a self, node: usize, ) -> Box<dyn Iterator<Item = (usize, f32)> + 'a>

Provided Methods§

Source

fn degree(&self, node: usize) -> usize

Source

fn weighted_degree(&self, node: usize) -> f32

Dyn Compatibility§

This trait is dyn compatible.

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

Implementors§