@@ -400,6 +400,11 @@ impl<'ser, W: Write> serde::ser::Serializer for &'ser mut Serializer<W> {
400400mod  tests { 
401401    use  super :: * ; 
402402    use  serde:: Serialize ; 
403+     use  simple_logger:: SimpleLogger ; 
404+ 
405+     fn  init_logger ( )  { 
406+         SimpleLogger :: new ( ) . with_utc_timestamps ( ) . init ( ) . unwrap ( ) ; 
407+     } 
403408
404409    #[ test]  
405410    fn  test_serialize_struct ( )  { 
@@ -447,4 +452,64 @@ mod tests {
447452        let  got = String :: from_utf8 ( buffer) . unwrap ( ) ; 
448453        assert_eq ! ( got,  should_be) ; 
449454    } 
455+ 
456+     #[ test]  
457+     fn  test_serialize_nested_structs ( )  { 
458+         #[ derive( Debug ,  Serialize ,  PartialEq ) ]  
459+         struct  Outer  { 
460+             a :  Inner , 
461+         } 
462+ 
463+         #[ derive( Debug ,  Serialize ,  PartialEq ) ]  
464+         struct  Inner  { 
465+             name :  String , 
466+         } 
467+ 
468+         let  coll = Outer  { 
469+             a :  Inner  { 
470+                 name :  "42" . to_owned ( ) , 
471+             } , 
472+         } ; 
473+ 
474+         let  str = to_string ( & coll) . unwrap ( ) ; 
475+         println ! ( "str={:?}" ,  str ) ; 
476+     } 
477+     #[ test]  
478+     fn  test_serialize_nested_collection ( )  { 
479+         init_logger ( ) ; 
480+ 
481+         #[ derive( Debug ,  Serialize ,  PartialEq ) ]  
482+         struct  OuterCollection  { 
483+             a :  Vec < A > , 
484+         } 
485+ 
486+         #[ derive( Debug ,  Serialize ,  PartialEq ) ]  
487+         struct  A  { 
488+             name :  String , 
489+         } 
490+ 
491+         let  coll = OuterCollection  { 
492+             a :  vec ! [ A  { 
493+                 name:  "42" . to_owned( ) , 
494+             } ] , 
495+         } ; 
496+ 
497+         let  str = to_string ( & coll) . unwrap ( ) ; 
498+         println ! ( "str={:?}" ,  str ) ; 
499+     } 
500+ 
501+     #[ test]  
502+     fn  test_serialize_vector ( )  { 
503+         #[ derive( Debug ,  Serialize ,  PartialEq ) ]  
504+         struct  OuterCollection  { 
505+             a :  Vec < String > , 
506+         } 
507+ 
508+         let  coll = OuterCollection  { 
509+             a :  vec ! [ "42" . to_owned( ) ] , 
510+         } ; 
511+ 
512+         let  str = to_string ( & coll) . unwrap ( ) ; 
513+         println ! ( "str={:?}" ,  str ) ; 
514+     } 
450515} 
0 commit comments