MutableCompound

Trait MutableCompound 

Source
pub trait MutableCompound: VisitableCompound {
Show 30 methods // Required methods fn add_node_with_data( &mut self, node: impl AsRef<NodeID>, parent: Option<impl AsRef<NodeID>>, edge: impl AsRef<EdgeID>, node_data: Self::NData, ) -> Result<()>; fn move_node( &mut self, id: impl AsRef<NodeID>, new_parent: Option<impl AsRef<NodeID>>, ) -> 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 add_edge_with_data( &mut self, edge: impl AsRef<EdgeID>, source: impl AsRef<NodeID>, target: impl AsRef<NodeID>, edge_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 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, node: impl AsRef<NodeID>, parent: Option<impl AsRef<NodeID>>, edge: impl AsRef<EdgeID>, node_data: Self::NData, ) -> Result<Self> where Self: Clone + Sized { ... } fn add_node( &mut self, node: impl AsRef<NodeID>, parent: Option<impl AsRef<NodeID>>, edge: impl AsRef<EdgeID>, ) -> Result<()> where Self::NData: Default { ... } fn adding_node( &self, node: impl AsRef<NodeID>, parent: Option<impl AsRef<NodeID>>, edge: impl AsRef<EdgeID>, ) -> Result<Self> where Self: Clone + Sized, Self::NData: Default { ... } fn moving_node( &self, id: impl AsRef<NodeID>, new_parent: Option<impl AsRef<NodeID>>, ) -> 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 adding_edge_with_data( &self, edge: impl AsRef<EdgeID>, source: impl AsRef<NodeID>, target: impl AsRef<NodeID>, edge_data: Self::EData, ) -> Result<Self> where Self: Clone + Sized { ... } fn add_edge( &mut self, edge: impl AsRef<EdgeID>, source: impl AsRef<NodeID>, target: impl AsRef<NodeID>, ) -> Result<()> where Self::EData: Default { ... } fn adding_edge( &self, edge: 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 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, node: impl AsRef<NodeID>, parent: Option<impl AsRef<NodeID>>, edge: impl AsRef<EdgeID>, node_data: Self::NData, ) -> Result<()>

Source

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

Source

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

Source

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

Source

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

Source

fn add_edge_with_data( &mut self, edge: impl AsRef<EdgeID>, source: impl AsRef<NodeID>, target: impl AsRef<NodeID>, edge_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 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, node: impl AsRef<NodeID>, parent: Option<impl AsRef<NodeID>>, edge: impl AsRef<EdgeID>, node_data: Self::NData, ) -> Result<Self>
where Self: Clone + Sized,

Source

fn add_node( &mut self, node: impl AsRef<NodeID>, parent: Option<impl AsRef<NodeID>>, edge: impl AsRef<EdgeID>, ) -> Result<()>
where Self::NData: Default,

Source

fn adding_node( &self, node: impl AsRef<NodeID>, parent: Option<impl AsRef<NodeID>>, edge: impl AsRef<EdgeID>, ) -> Result<Self>
where Self: Clone + Sized, Self::NData: Default,

Source

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

Source

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

Source

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

Source

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

Source

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

Source

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

Source

fn adding_edge( &self, edge: 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 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<InnerGraph, InnerForest> MutableCompound for CompoundBase<InnerGraph, InnerForest>
where InnerGraph: MutableGraph, InnerForest: MutableForest<GData = (), NData = (), EData = ()>,