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§
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>
fn add_node(&mut self, id: impl AsRef<NodeID>) -> Result<()>
fn adding_node(&self, id: impl AsRef<NodeID>) -> Result<Self>
fn adding_edge_with_data( &self, id: impl AsRef<EdgeID>, source: impl AsRef<NodeID>, target: impl AsRef<NodeID>, data: Self::EData, ) -> Result<Self>
fn add_edge( &mut self, id: impl AsRef<EdgeID>, source: impl AsRef<NodeID>, target: impl AsRef<NodeID>, ) -> Result<()>
fn adding_edge( &self, id: impl AsRef<EdgeID>, source: impl AsRef<NodeID>, target: impl AsRef<NodeID>, ) -> Result<Self>
fn removing_edge(&self, id: impl AsRef<EdgeID>) -> Result<Self>
fn clearing_edges(&self, id: impl AsRef<NodeID>) -> Result<Self>
fn removing_node(&self, id: impl AsRef<NodeID>) -> Result<Self>
fn moving_edge( &self, id: impl AsRef<EdgeID>, new_source: impl AsRef<NodeID>, new_target: impl AsRef<NodeID>, ) -> Result<Self>
fn setting_data(&self, data: Self::GData) -> Self
fn setting_node_data( &self, id: impl AsRef<NodeID>, data: Self::NData, ) -> Result<Self>
fn setting_edge_data( &self, id: impl AsRef<EdgeID>, data: Self::EData, ) -> Result<Self>
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.