@@ -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 ) ]
1212struct SerNode < ' a , T > {
@@ -50,25 +50,24 @@ struct DeserNode<T> {
5050}
5151
5252impl < 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
6564impl < 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