Expand description
Primitive edge helpers.
The crate keeps edge handling explicit with small structs for generic, directed, and undirected edges.
§Examples
use use_edge::{Edge, UndirectedEdge, dedupe_edges, has_self_loop};
let deduped = dedupe_edges(&[Edge::new(0, 1), Edge::new(0, 1), Edge::new(1, 1)]);
let undirected = UndirectedEdge::new(2, 1);
assert_eq!(deduped, vec![Edge::new(0, 1), Edge::new(1, 1)]);
assert_eq!(undirected.source(), 1);
assert!(has_self_loop(Edge::new(1, 1)));