pub trait GraphBuilding<T, W>{
// Required methods
fn add_edge(&mut self, from: T, to: T, weight: W);
fn add_node(&mut self, node: T) -> bool;
fn remove_edge(&mut self, from: T, to: T) -> Result<(), NodeNotFound>;
fn remove_node(&mut self, node: T) -> Result<(), NodeNotFound>;
fn has_edge(&self, from: T, to: T) -> bool;
}