Skip to content

Commit b85b188

Browse files
committed
into_tree_node now takes parent as NodeMut
1 parent 1ff4288 commit b85b188

File tree

1 file changed

+7
-8
lines changed

1 file changed

+7
-8
lines changed

src/serde.rs

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ use serde::{
66
Deserialize, Deserializer,
77
};
88

9-
use crate::{NodeId, NodeRef, Tree};
9+
use crate::{NodeId, NodeMut, NodeRef, Tree};
1010

1111
#[derive(Debug)]
1212
struct SerNode<'a, T> {
@@ -50,25 +50,24 @@ struct DeserNode<T> {
5050
}
5151

5252
impl<T> DeserNode<T> {
53-
fn into_tree_node(self, tree: &mut Tree<T>, parent: NodeId) -> NodeId {
54-
let mut parent = tree.get_mut(parent).unwrap();
55-
let node = parent.append(self.value).id();
53+
fn into_tree_node(self, parent: &mut NodeMut<T>) -> NodeId {
54+
let mut node = parent.append(self.value);
5655

5756
for child in self.children {
58-
child.into_tree_node(tree, node);
57+
child.into_tree_node(&mut node);
5958
}
6059

61-
node
60+
node.id
6261
}
6362
}
6463

6564
impl<T> From<DeserNode<T>> for Tree<T> {
6665
fn from(root: DeserNode<T>) -> Self {
6766
let mut tree: Tree<T> = Tree::new(root.value);
68-
let root_id = tree.root().id;
67+
let mut tree_root = tree.root_mut();
6968

7069
for child in root.children {
71-
child.into_tree_node(&mut tree, root_id);
70+
child.into_tree_node(&mut tree_root);
7271
}
7372

7473
tree

0 commit comments

Comments
 (0)