MutableGraph

Trait MutableGraph 

Source
pub trait MutableGraph: VisitableGraph {
Show 25 methods // Required methods fn add_node_with_data( &mut self, id: impl AsRef<NodeID>, data: Self::NData, ) -> Result<()>; fn add_edge_with_data( &mut self, id: impl AsRef<EdgeID>, source: impl AsRef<NodeID>, target: impl AsRef<NodeID>, data: Self::EData, ) -> Result<()>; fn remove_edge(&mut self, id: impl AsRef<EdgeID>) -> Result<()>; fn clear_edges(&mut self, id: impl AsRef<NodeID>) -> Result<()>; fn remove_node(&mut self, id: impl AsRef<NodeID>) -> Result<()>; fn move_edge( &mut self, id: impl AsRef<EdgeID>, new_source: impl AsRef<NodeID>, new_target: impl AsRef<NodeID>, ) -> Result<()>; fn set_data(&mut self, data: Self::GData); fn set_node_data( &mut self, id: impl AsRef<NodeID>, data: Self::NData, ) -> Result<()>; fn set_edge_data( &mut self, id: impl AsRef<EdgeID>, data: Self::EData, ) -> Result<()>; fn with_data(&mut self, transform: &dyn Fn(&mut Self::GData)); fn with_node_data( &mut self, id: impl AsRef<NodeID>, transform: &dyn Fn(&mut Self::NData), ) -> Result<()>; fn with_edge_data( &mut self, id: impl AsRef<EdgeID>, transform: &dyn Fn(&mut Self::EData), ) -> Result<()>; // Provided methods fn adding_node_with_data( &self, id: impl AsRef<NodeID>, data: Self::NData, ) -> Result<Self> where Self: Clone + Sized { ... } fn add_node(&mut self, id: impl AsRef<NodeID>) -> Result<()> where Self::NData: Default { ... } fn adding_node(&self, id: impl AsRef<NodeID>) -> Result<Self> where Self: Clone + Sized, Self::NData: Default { ... } fn adding_edge_with_data( &self, id: impl AsRef<EdgeID>, source: impl AsRef<NodeID>, target: impl AsRef<NodeID>, data: Self::EData, ) -> Result<Self> where Self: Clone + Sized { ... } fn add_edge( &mut self, id: impl AsRef<EdgeID>, source: impl AsRef<NodeID>, target: impl AsRef<NodeID>, ) -> Result<()> where Self::EData: Default { ... } fn adding_edge( &self, id: impl AsRef<EdgeID>, source: impl AsRef<NodeID>, target: impl AsRef<NodeID>, ) -> Result<Self> where Self: Clone + Sized, Self::EData: Default { ... } fn removing_edge(&self, id: impl AsRef<EdgeID>) -> Result<Self> where Self: Clone + Sized { ... } fn clearing_edges(&self, id: impl AsRef<NodeID>) -> Result<Self> where Self: Clone + Sized { ... } fn removing_node(&self, id: impl AsRef<NodeID>) -> Result<Self> where Self: Clone + Sized { ... } fn moving_edge( &self, id: impl AsRef<EdgeID>, new_source: impl AsRef<NodeID>, new_target: impl AsRef<NodeID>, ) -> Result<Self> where Self: Clone + Sized { ... } fn setting_data(&self, data: Self::GData) -> Self where Self: Clone + Sized { ... } fn setting_node_data( &self, id: impl AsRef<NodeID>, data: Self::NData, ) -> Result<Self> where Self: Clone + Sized { ... } fn setting_edge_data( &self, id: impl AsRef<EdgeID>, data: Self::EData, ) -> Result<Self> where Self: Clone + Sized { ... }
}

Required Methods§

Source

fn add_node_with_data( &mut self, id: impl AsRef<NodeID>, data: Self::NData, ) -> Result<()>

Source

fn add_edge_with_data( &mut self, id: impl AsRef<EdgeID>, source: impl AsRef<NodeID>, target: impl AsRef<NodeID>, data: Self::EData, ) -> Result<()>

Source

fn remove_edge(&mut self, id: impl AsRef<EdgeID>) -> Result<()>

Source

fn clear_edges(&mut self, id: impl AsRef<NodeID>) -> Result<()>

Source

fn remove_node(&mut self, id: impl AsRef<NodeID>) -> Result<()>

Source

fn move_edge( &mut self, id: impl AsRef<EdgeID>, new_source: impl AsRef<NodeID>, new_target: impl AsRef<NodeID>, ) -> Result<()>

Source

fn set_data(&mut self, data: Self::GData)

Source

fn set_node_data( &mut self, id: impl AsRef<NodeID>, data: Self::NData, ) -> Result<()>

Source

fn set_edge_data( &mut self, id: impl AsRef<EdgeID>, data: Self::EData, ) -> Result<()>

Source

fn with_data(&mut self, transform: &dyn Fn(&mut Self::GData))

Source

fn with_node_data( &mut self, id: impl AsRef<NodeID>, transform: &dyn Fn(&mut Self::NData), ) -> Result<()>

Source

fn with_edge_data( &mut self, id: impl AsRef<EdgeID>, transform: &dyn Fn(&mut Self::EData), ) -> Result<()>

Provided Methods§

Source

fn adding_node_with_data( &self, id: impl AsRef<NodeID>, data: Self::NData, ) -> Result<Self>
where Self: Clone + Sized,

Source

fn add_node(&mut self, id: impl AsRef<NodeID>) -> Result<()>
where Self::NData: Default,

Source

fn adding_node(&self, id: impl AsRef<NodeID>) -> Result<Self>
where Self: Clone + Sized, Self::NData: Default,

Source

fn adding_edge_with_data( &self, id: impl AsRef<EdgeID>, source: impl AsRef<NodeID>, target: impl AsRef<NodeID>, data: Self::EData, ) -> Result<Self>
where Self: Clone + Sized,

Source

fn add_edge( &mut self, id: impl AsRef<EdgeID>, source: impl AsRef<NodeID>, target: impl AsRef<NodeID>, ) -> Result<()>
where Self::EData: Default,

Source

fn adding_edge( &self, id: impl AsRef<EdgeID>, source: impl AsRef<NodeID>, target: impl AsRef<NodeID>, ) -> Result<Self>
where Self: Clone + Sized, Self::EData: Default,

Source

fn removing_edge(&self, id: impl AsRef<EdgeID>) -> Result<Self>
where Self: Clone + Sized,

Source

fn clearing_edges(&self, id: impl AsRef<NodeID>) -> Result<Self>
where Self: Clone + Sized,

Source

fn removing_node(&self, id: impl AsRef<NodeID>) -> Result<Self>
where Self: Clone + Sized,

Source

fn moving_edge( &self, id: impl AsRef<EdgeID>, new_source: impl AsRef<NodeID>, new_target: impl AsRef<NodeID>, ) -> Result<Self>
where Self: Clone + Sized,

Source

fn setting_data(&self, data: Self::GData) -> Self
where Self: Clone + Sized,

Source

fn setting_node_data( &self, id: impl AsRef<NodeID>, data: Self::NData, ) -> Result<Self>
where Self: Clone + Sized,

Source

fn setting_edge_data( &self, id: impl AsRef<EdgeID>, data: Self::EData, ) -> Result<Self>
where Self: Clone + Sized,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§

Source§

impl<GData, NData, EData> MutableGraph for Graph<GData, NData, EData>
where GData: Clone + 'static, NData: Clone + 'static, EData: Clone + 'static,

Source§

impl<Inner> MutableGraph for DAG<Inner>
where Inner: MutableGraph,