How do I access the source and destination nodes from a petgraph::graph::EdgeReference
? I want to iterate over all the edges, so I used graph.edge_references()
method and then in each iteration I want to get the source and destination nodes of the edge. A minimal working example is -
use petgraph::Graph;
use petgraph::visit::IntoEdgeReferences;
use petgraph::visit::IntoNodeIdentifiers;
use petgraph::graph::IndexType;
use petgraph::graph::NodeIndex;
fn main() {
let mut graph = Graph::<u32, u32>::new();
graph.add_node(1);
graph.add_node(2);
graph.add_node(3);
graph.extend_with_edges(&[ (1, 2), (1, 3)]);
for e in graph.edge_references() {
println!("{:?}", e);
// Do things with e.nodes
}
}
In the above example I want to access e.nodes
but source
and target
are not implemented for petgraph::graph::EdgeReference
and e.nodes
is private.
Please let me know if there is a better way to iterate over edges or access the source and target nodes of an EdgeReference
.