Use the same JSON schema for encoding enums in PrettyEncoder as in Encoder
Closes issue #17607
This commit is contained in:
parent
b7aa03a3ca
commit
ae3d42ef0d
1 changed files with 16 additions and 8 deletions
|
@ -668,16 +668,23 @@ impl<'a> ::Encoder<io::IoError> for PrettyEncoder<'a> {
|
||||||
if cnt == 0 {
|
if cnt == 0 {
|
||||||
escape_str(self.writer, name)
|
escape_str(self.writer, name)
|
||||||
} else {
|
} else {
|
||||||
|
try!(write!(self.writer, "{{\n"));
|
||||||
self.curr_indent += self.indent;
|
self.curr_indent += self.indent;
|
||||||
try!(write!(self.writer, "[\n"));
|
|
||||||
try!(spaces(self.writer, self.curr_indent));
|
try!(spaces(self.writer, self.curr_indent));
|
||||||
|
try!(write!(self.writer, "\"variant\": "));
|
||||||
try!(escape_str(self.writer, name));
|
try!(escape_str(self.writer, name));
|
||||||
try!(write!(self.writer, ",\n"));
|
try!(write!(self.writer, ",\n"));
|
||||||
|
try!(spaces(self.writer, self.curr_indent));
|
||||||
|
try!(write!(self.writer, "\"fields\": [\n"));
|
||||||
|
self.curr_indent += self.indent;
|
||||||
try!(f(self));
|
try!(f(self));
|
||||||
self.curr_indent -= self.indent;
|
self.curr_indent -= self.indent;
|
||||||
try!(write!(self.writer, "\n"));
|
try!(write!(self.writer, "\n"));
|
||||||
try!(spaces(self.writer, self.curr_indent));
|
try!(spaces(self.writer, self.curr_indent));
|
||||||
write!(self.writer, "]")
|
self.curr_indent -= self.indent;
|
||||||
|
try!(write!(self.writer, "]\n"));
|
||||||
|
try!(spaces(self.writer, self.curr_indent));
|
||||||
|
write!(self.writer, "}}")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2651,12 +2658,13 @@ mod tests {
|
||||||
let mut encoder = PrettyEncoder::new(writer);
|
let mut encoder = PrettyEncoder::new(writer);
|
||||||
animal.encode(&mut encoder).unwrap();
|
animal.encode(&mut encoder).unwrap();
|
||||||
}),
|
}),
|
||||||
"\
|
"{\n \
|
||||||
[\n \
|
\"variant\": \"Frog\",\n \
|
||||||
\"Frog\",\n \
|
\"fields\": [\n \
|
||||||
\"Henry\",\n \
|
\"Henry\",\n \
|
||||||
349\n\
|
349\n \
|
||||||
]".to_string()
|
]\n\
|
||||||
|
}".to_string()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue