Skip to content

Commit d00cf98

Browse files
committed
rollup merge of rust-lang#17623 : bkoropoff/issue-17607
2 parents 1a18258 + ae3d42e commit d00cf98

File tree

1 file changed

+16
-8
lines changed

1 file changed

+16
-8
lines changed

src/libserialize/json.rs

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)