use std::marker::PhantomData; pub struct Directed; pub struct Undirected; pub struct Graph { nodes: Vec>, edges: Vec>, ty: PhantomData, } impl Graph { pub fn new() -> Self { Graph{nodes: Vec::new(), edges: Vec::new(), ty: PhantomData} } } impl Graph { pub fn new_undirected() -> Self { Graph{nodes: Vec::new(), edges: Vec::new(), ty: PhantomData} } }