@@ -668,16 +668,23 @@ impl<'a> ::Encoder<io::IoError> for PrettyEncoder<'a> {
668
668
if cnt == 0 {
669
669
escape_str( self . writer, name)
670
670
} else {
671
+ try!( write ! ( self . writer, "{{\n " ) ) ;
671
672
self . curr_indent += self . indent ;
672
- try!( write ! ( self . writer, "[\n " ) ) ;
673
673
try ! ( spaces( self . writer, self . curr_indent) ) ;
674
+ try ! ( write!( self . writer, "\" variant\" : " ) ) ;
674
675
try ! ( escape_str( self . writer, name) ) ;
675
676
try ! ( write!( self . writer, ",\n " ) ) ;
677
+ try ! ( spaces( self . writer, self . curr_indent) ) ;
678
+ try ! ( write!( self . writer, "\" fields\" : [\n " ) ) ;
679
+ self . curr_indent += self . indent;
676
680
try ! ( f( self ) ) ;
677
681
self . curr_indent -= self . indent;
678
682
try ! ( write!( self . writer, "\n " ) ) ;
679
683
try ! ( spaces( self . writer, self . curr_indent) ) ;
680
- write ! ( self . writer, "]" )
684
+ self . curr_indent -= self . indent;
685
+ try ! ( write!( self . writer, "]\n " ) ) ;
686
+ try ! ( spaces( self . writer, self . curr_indent) ) ;
687
+ write ! ( self . writer, "}}" )
681
688
}
682
689
}
683
690
@@ -2651,12 +2658,13 @@ mod tests {
2651
2658
let mut encoder = PrettyEncoder :: new( writer) ;
2652
2659
animal. encode( & mut encoder) . unwrap( ) ;
2653
2660
} ) ,
2654
- "\
2655
- [\n \
2656
- \" Frog\" ,\n \
2657
- \" Henry\" ,\n \
2658
- 349\n \
2659
- ]". to_string( )
2661
+ "{\n \
2662
+ \" variant\" : \" Frog\" ,\n \
2663
+ \" fields\" : [\n \
2664
+ \" Henry\" ,\n \
2665
+ 349\n \
2666
+ ]\n \
2667
+ }". to_string( )
2660
2668
) ;
2661
2669
}
2662
2670
0 commit comments