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§
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§
Dyn Compatibility§
This trait is dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".