pub trait MutableForest: VisitableForest {
Show 25 methods
// Required methods
fn add_node_with_node_and_edge_data(
&mut self,
node: impl AsRef<NodeID>,
parent: Option<impl AsRef<NodeID>>,
edge: impl AsRef<EdgeID>,
node_data: Self::NData,
edge_data: Self::EData,
) -> Result<()>;
fn remove_node_ungrouping(&mut self, id: impl AsRef<NodeID>) -> Result<()>;
fn remove_node_and_children(
&mut self,
id: impl AsRef<NodeID>,
) -> Result<Nodes>;
fn remove_children(&mut self, id: impl AsRef<NodeID>) -> Result<Nodes>;
fn move_node(
&mut self,
id: impl AsRef<NodeID>,
new_parent: Option<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_node_and_edge_data(
&self,
node: impl AsRef<NodeID>,
parent: Option<impl AsRef<NodeID>>,
edge: impl AsRef<EdgeID>,
node_data: Self::NData,
edge_data: Self::EData,
) -> Result<Self>
where Self: Clone + Sized { ... }
fn removing_node_ungrouping(&self, id: impl AsRef<NodeID>) -> Result<Self>
where Self: Clone + Sized { ... }
fn removing_node_and_children(&self, id: impl AsRef<NodeID>) -> Result<Self>
where Self: Clone + Sized { ... }
fn removing_children(&self, id: impl AsRef<NodeID>) -> Result<Self>
where Self: Clone + Sized { ... }
fn moving_node(
&self,
id: impl AsRef<NodeID>,
new_parent: Option<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 { ... }
fn add_node(
&mut self,
id: impl AsRef<NodeID>,
parent: Option<impl AsRef<NodeID>>,
edge: impl AsRef<EdgeID>,
) -> Result<()>
where Self::NData: Default,
Self::EData: Default { ... }
fn adding_node(
&self,
id: impl AsRef<NodeID>,
parent: Option<impl AsRef<NodeID>>,
edge: impl AsRef<EdgeID>,
) -> Result<Self>
where Self: Clone + Sized,
Self::NData: Default,
Self::EData: Default { ... }
fn add_node_with_edge_data(
&mut self,
id: impl AsRef<NodeID>,
parent: Option<impl AsRef<NodeID>>,
edge: impl AsRef<EdgeID>,
edge_data: Self::EData,
) -> Result<()>
where Self::NData: Default { ... }
fn adding_node_with_edge_data(
&self,
id: impl AsRef<NodeID>,
parent: Option<impl AsRef<NodeID>>,
edge: impl AsRef<EdgeID>,
edge_data: Self::EData,
) -> Result<Self>
where Self: Clone + Sized,
Self::NData: Default { ... }
fn add_node_with_node_data(
&mut self,
id: impl AsRef<NodeID>,
parent: Option<impl AsRef<NodeID>>,
edge: impl AsRef<EdgeID>,
node_data: Self::NData,
) -> Result<()>
where Self::EData: Default { ... }
fn adding_node_with_node_data(
&self,
id: impl AsRef<NodeID>,
parent: Option<impl AsRef<NodeID>>,
edge: impl AsRef<EdgeID>,
node_data: Self::NData,
) -> Result<Self>
where Self: Clone + Sized,
Self::EData: Default { ... }
}Required Methods§
fn add_node_with_node_and_edge_data( &mut self, node: impl AsRef<NodeID>, parent: Option<impl AsRef<NodeID>>, edge: impl AsRef<EdgeID>, node_data: Self::NData, edge_data: Self::EData, ) -> Result<()>
fn remove_node_ungrouping(&mut self, id: impl AsRef<NodeID>) -> Result<()>
fn remove_node_and_children(&mut self, id: impl AsRef<NodeID>) -> Result<Nodes>
fn remove_children(&mut self, id: impl AsRef<NodeID>) -> Result<Nodes>
fn move_node( &mut self, id: impl AsRef<NodeID>, new_parent: Option<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_node_and_edge_data( &self, node: impl AsRef<NodeID>, parent: Option<impl AsRef<NodeID>>, edge: impl AsRef<EdgeID>, node_data: Self::NData, edge_data: Self::EData, ) -> Result<Self>
fn removing_node_ungrouping(&self, id: impl AsRef<NodeID>) -> Result<Self>
fn removing_node_and_children(&self, id: impl AsRef<NodeID>) -> Result<Self>
fn removing_children(&self, id: impl AsRef<NodeID>) -> Result<Self>
fn moving_node( &self, id: impl AsRef<NodeID>, new_parent: Option<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>
fn add_node( &mut self, id: impl AsRef<NodeID>, parent: Option<impl AsRef<NodeID>>, edge: impl AsRef<EdgeID>, ) -> Result<()>
fn adding_node( &self, id: impl AsRef<NodeID>, parent: Option<impl AsRef<NodeID>>, edge: impl AsRef<EdgeID>, ) -> Result<Self>
fn add_node_with_edge_data( &mut self, id: impl AsRef<NodeID>, parent: Option<impl AsRef<NodeID>>, edge: impl AsRef<EdgeID>, edge_data: Self::EData, ) -> Result<()>
fn adding_node_with_edge_data( &self, id: impl AsRef<NodeID>, parent: Option<impl AsRef<NodeID>>, edge: impl AsRef<EdgeID>, edge_data: Self::EData, ) -> Result<Self>
fn add_node_with_node_data( &mut self, id: impl AsRef<NodeID>, parent: Option<impl AsRef<NodeID>>, edge: impl AsRef<EdgeID>, node_data: Self::NData, ) -> Result<()>
fn adding_node_with_node_data( &self, id: impl AsRef<NodeID>, parent: Option<impl AsRef<NodeID>>, edge: impl AsRef<EdgeID>, node_data: Self::NData, ) -> 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.