pub fn to_directed(graph: &Graph, mode: ToDirectedMode) -> IgraphResult<Graph>Expand description
Converts an undirected graph to a directed graph.
If the graph is already directed, returns a copy.
§Modes
Mutual: each undirected edge {u,v} becomes two directed edges u→v and v→u.Arbitrary: each undirected edge {u,v} becomes a single directed edge from min(u,v) → max(u,v).
§Examples
use rust_igraph::{Graph, to_directed, ToDirectedMode};
let mut g = Graph::with_vertices(3);
g.add_edge(0, 1).unwrap();
g.add_edge(1, 2).unwrap();
// Mutual: each edge becomes two directed edges
let d = to_directed(&g, ToDirectedMode::Mutual).unwrap();
assert!(d.is_directed());
assert_eq!(d.ecount(), 4); // 2 edges × 2 directions
// Arbitrary: each edge gets one direction (canonical)
let d = to_directed(&g, ToDirectedMode::Arbitrary).unwrap();
assert!(d.is_directed());
assert_eq!(d.ecount(), 2);