@@ -668,16 +668,23 @@ impl<'a> ::Encoder<io::IoError> for PrettyEncoder<'a> {
668668 if cnt == 0 {
669669 escape_str( self . writer, name)
670670 } else {
671+ try!( write ! ( self . writer, "{{\n " ) ) ;
671672 self . curr_indent += self . indent ;
672- try!( write ! ( self . writer, "[\n " ) ) ;
673673 try ! ( spaces( self . writer, self . curr_indent) ) ;
674+ try ! ( write!( self . writer, "\" variant\" : " ) ) ;
674675 try ! ( escape_str( self . writer, name) ) ;
675676 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;
676680 try ! ( f( self ) ) ;
677681 self . curr_indent -= self . indent;
678682 try ! ( write!( self . writer, "\n " ) ) ;
679683 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, "}}" )
681688 }
682689 }
683690
@@ -2651,12 +2658,13 @@ mod tests {
26512658 let mut encoder = PrettyEncoder :: new( writer) ;
26522659 animal. encode( & mut encoder) . unwrap( ) ;
26532660 } ) ,
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( )
26602668 ) ;
26612669 }
26622670
0 commit comments