11#![ cfg( feature = "serde" ) ]
22
3- use ego_tree:: { tree, Tree } ;
3+ use ego_tree:: tree;
44use serde_test:: { assert_tokens, Token } ;
55
66#[ test]
7- fn test_serde_round_trip ( ) {
8- let tree = tree ! ( "a" => { "b" , "c" => { "d" , "e" } , "f" } ) ;
9- let repr = serde_json:: to_string ( & tree) . unwrap ( ) ;
10- println ! ( "{repr}" ) ;
11- let re_tree: Tree < & str > = serde_json:: from_str ( & repr) . unwrap ( ) ;
12- println ! ( "{re_tree}" ) ;
13- assert_eq ! ( tree, re_tree) ;
7+ fn test_internal_serde_repr_trivial ( ) {
8+ let tree = tree ! ( "a" ) ;
9+
10+ assert_tokens (
11+ & tree,
12+ & [
13+ Token :: Struct {
14+ name : "Node" ,
15+ len : 2 ,
16+ } ,
17+ Token :: BorrowedStr ( "value" ) ,
18+ Token :: BorrowedStr ( "a" ) ,
19+ Token :: BorrowedStr ( "children" ) ,
20+ Token :: Seq { len : Some ( 0 ) } ,
21+ Token :: SeqEnd ,
22+ Token :: StructEnd ,
23+ ] ,
24+ ) ;
1425}
1526
1627#[ test]
1728fn test_internal_serde_repr ( ) {
18- let tree = tree ! ( "a" ) ;
29+ let tree = tree ! ( "a" => { "b" , "c" => { "d" , "e" } , "f" } ) ;
1930
2031 assert_tokens (
2132 & tree,
@@ -24,12 +35,62 @@ fn test_internal_serde_repr() {
2435 name : "Node" ,
2536 len : 2 ,
2637 } ,
27- Token :: Str ( "value" ) ,
28- Token :: Str ( "a" ) ,
29- Token :: Str ( "children" ) ,
38+ Token :: BorrowedStr ( "value" ) ,
39+ Token :: BorrowedStr ( "a" ) ,
40+ Token :: BorrowedStr ( "children" ) ,
41+ Token :: Seq { len : Some ( 3 ) } ,
42+ Token :: Struct {
43+ name : "Node" ,
44+ len : 2 ,
45+ } ,
46+ Token :: BorrowedStr ( "value" ) ,
47+ Token :: BorrowedStr ( "b" ) ,
48+ Token :: BorrowedStr ( "children" ) ,
49+ Token :: Seq { len : Some ( 0 ) } ,
50+ Token :: SeqEnd ,
51+ Token :: StructEnd ,
52+ Token :: Struct {
53+ name : "Node" ,
54+ len : 2 ,
55+ } ,
56+ Token :: BorrowedStr ( "value" ) ,
57+ Token :: BorrowedStr ( "c" ) ,
58+ Token :: BorrowedStr ( "children" ) ,
59+ Token :: Seq { len : Some ( 2 ) } ,
60+ Token :: Struct {
61+ name : "Node" ,
62+ len : 2 ,
63+ } ,
64+ Token :: BorrowedStr ( "value" ) ,
65+ Token :: BorrowedStr ( "d" ) ,
66+ Token :: BorrowedStr ( "children" ) ,
3067 Token :: Seq { len : Some ( 0 ) } ,
3168 Token :: SeqEnd ,
3269 Token :: StructEnd ,
70+ Token :: Struct {
71+ name : "Node" ,
72+ len : 2 ,
73+ } ,
74+ Token :: BorrowedStr ( "value" ) ,
75+ Token :: BorrowedStr ( "e" ) ,
76+ Token :: BorrowedStr ( "children" ) ,
77+ Token :: Seq { len : Some ( 0 ) } ,
78+ Token :: SeqEnd ,
79+ Token :: StructEnd ,
80+ Token :: SeqEnd ,
81+ Token :: StructEnd ,
82+ Token :: Struct {
83+ name : "Node" ,
84+ len : 2 ,
85+ } ,
86+ Token :: BorrowedStr ( "value" ) ,
87+ Token :: BorrowedStr ( "f" ) ,
88+ Token :: BorrowedStr ( "children" ) ,
89+ Token :: Seq { len : Some ( 0 ) } ,
90+ Token :: SeqEnd ,
91+ Token :: StructEnd ,
92+ Token :: SeqEnd ,
93+ Token :: StructEnd ,
3394 ] ,
3495 ) ;
3596}
0 commit comments