@@ -25,11 +25,11 @@ pub struct ViewTree {
2525
2626impl ViewTree {
2727 /// Create a new ViewTree with a root view.
28- pub fn new ( root_view : Box < dyn View > ) -> Self {
28+ pub fn new ( root_view : Arc < dyn View > ) -> Self {
2929 let root_id = uuid:: Uuid :: new_v4 ( ) ;
3030 let root_node = ViewNode {
3131 view_id : root_id,
32- view : Arc :: from ( root_view) ,
32+ view : root_view,
3333 parent : None ,
3434 children : Vec :: new ( ) ,
3535 } ;
@@ -44,11 +44,11 @@ impl ViewTree {
4444 }
4545
4646 /// Insert a child view under the given parent, returning the new child's ViewId.
47- pub fn insert ( & mut self , parent_id : ViewId , view : Box < dyn View > ) -> ViewId {
47+ pub fn insert ( & mut self , parent_id : ViewId , view : Arc < dyn View > ) -> ViewId {
4848 let child_id = uuid:: Uuid :: new_v4 ( ) ;
4949 let child_node = ViewNode {
5050 view_id : child_id,
51- view : Arc :: from ( view ) ,
51+ view,
5252 parent : Some ( parent_id) ,
5353 children : Vec :: new ( ) ,
5454 } ;
@@ -64,11 +64,11 @@ impl ViewTree {
6464 & mut self ,
6565 parent_id : ViewId ,
6666 child_id : ViewId ,
67- view : Box < dyn View > ,
67+ view : Arc < dyn View > ,
6868 ) -> ViewId {
6969 let child_node = ViewNode {
7070 view_id : child_id,
71- view : Arc :: from ( view ) ,
71+ view,
7272 parent : Some ( parent_id) ,
7373 children : Vec :: new ( ) ,
7474 } ;
@@ -178,11 +178,11 @@ mod tests {
178178
179179 #[ test]
180180 fn test_view_tree_insert_and_ancestors ( ) {
181- let mut tree = ViewTree :: new ( Box :: new ( DummyView ( "root" . into ( ) ) ) ) ;
181+ let mut tree = ViewTree :: new ( Arc :: new ( DummyView ( "root" . into ( ) ) ) ) ;
182182 let root = tree. root_id ( ) ;
183183
184- let child = tree. insert ( root, Box :: new ( DummyView ( "child" . into ( ) ) ) ) ;
185- let grandchild = tree. insert ( child, Box :: new ( DummyView ( "grandchild" . into ( ) ) ) ) ;
184+ let child = tree. insert ( root, Arc :: new ( DummyView ( "child" . into ( ) ) ) ) ;
185+ let grandchild = tree. insert ( child, Arc :: new ( DummyView ( "grandchild" . into ( ) ) ) ) ;
186186
187187 let ancestors = tree. ancestors ( grandchild) ;
188188 assert_eq ! ( ancestors. len( ) , 2 ) ;
@@ -195,12 +195,12 @@ mod tests {
195195
196196 #[ test]
197197 fn test_view_tree_remove_subtree ( ) {
198- let mut tree = ViewTree :: new ( Box :: new ( DummyView ( "root" . into ( ) ) ) ) ;
198+ let mut tree = ViewTree :: new ( Arc :: new ( DummyView ( "root" . into ( ) ) ) ) ;
199199 let root = tree. root_id ( ) ;
200200
201- let child = tree. insert ( root, Box :: new ( DummyView ( "child" . into ( ) ) ) ) ;
202- let gc1 = tree. insert ( child, Box :: new ( DummyView ( "gc1" . into ( ) ) ) ) ;
203- let gc2 = tree. insert ( child, Box :: new ( DummyView ( "gc2" . into ( ) ) ) ) ;
201+ let child = tree. insert ( root, Arc :: new ( DummyView ( "child" . into ( ) ) ) ) ;
202+ let gc1 = tree. insert ( child, Arc :: new ( DummyView ( "gc1" . into ( ) ) ) ) ;
203+ let gc2 = tree. insert ( child, Arc :: new ( DummyView ( "gc2" . into ( ) ) ) ) ;
204204
205205 let removed = tree. remove ( child) ;
206206 assert_eq ! ( removed. len( ) , 3 ) ;
@@ -217,12 +217,12 @@ mod tests {
217217
218218 #[ test]
219219 fn test_view_tree_subtree_ids ( ) {
220- let mut tree = ViewTree :: new ( Box :: new ( DummyView ( "root" . into ( ) ) ) ) ;
220+ let mut tree = ViewTree :: new ( Arc :: new ( DummyView ( "root" . into ( ) ) ) ) ;
221221 let root = tree. root_id ( ) ;
222222
223- let c1 = tree. insert ( root, Box :: new ( DummyView ( "c1" . into ( ) ) ) ) ;
224- let c2 = tree. insert ( root, Box :: new ( DummyView ( "c2" . into ( ) ) ) ) ;
225- let gc = tree. insert ( c1, Box :: new ( DummyView ( "gc" . into ( ) ) ) ) ;
223+ let c1 = tree. insert ( root, Arc :: new ( DummyView ( "c1" . into ( ) ) ) ) ;
224+ let c2 = tree. insert ( root, Arc :: new ( DummyView ( "c2" . into ( ) ) ) ) ;
225+ let gc = tree. insert ( c1, Arc :: new ( DummyView ( "gc" . into ( ) ) ) ) ;
226226
227227 let subtree = tree. subtree_ids ( root) ;
228228 assert_eq ! ( subtree. len( ) , 4 ) ;
0 commit comments