wolf_graph/traits/
mutable_tree.rs

1use anyhow::Result;
2
3use crate::{MutableForest, NodeID, VisitableTree};
4
5pub trait MutableTree: VisitableTree + MutableForest {
6    fn set_root(&mut self, root: impl AsRef<NodeID>) -> Result<()>;
7
8    fn setting_root(&self, root: impl AsRef<NodeID>) -> Result<Self>
9    where
10        Self: Clone + Sized,
11    {
12        let mut tree = self.clone();
13        tree.set_root(root)?;
14        Ok(tree)
15    }
16}