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}