diff options
| author | John Clements <clements@racket-lang.org> | 2013-02-06 16:20:41 -0800 |
|---|---|---|
| committer | John Clements <clements@racket-lang.org> | 2013-02-09 13:37:04 -0800 |
| commit | 765961438d0a3f8f37f1e38160f6dca04870ae10 (patch) | |
| tree | 1cf41ba7a5fd2df4e63cca3b85c9c2277fc019d6 /src/libstd | |
| parent | 19dfec2aaf746535de1521f68421f9980dbf25de (diff) | |
fix typos in sample code, add enum to json encoder, add test case
Diffstat (limited to 'src/libstd')
| -rw-r--r-- | src/libstd/json.rs | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libstd/json.rs b/src/libstd/json.rs index 404f1bcda99..2ad18fbced2 100644 --- a/src/libstd/json.rs +++ b/src/libstd/json.rs @@ -122,9 +122,15 @@ pub impl Encoder: serialize::Encoder { fn emit_managed(&self, f: fn()) { f() } fn emit_enum(&self, name: &str, f: fn()) { - if name != "option" { die!(~"only supports option enum") } - f() + // emitting enums as arrays where the first + // element provides the enum variant name + self.wr.write_char('['); + self.wr.write_str(name); + self.wr.write_char(','); + f(); + self.wr.write_char(']'); } + fn emit_enum_variant(&self, _name: &str, id: uint, _cnt: uint, f: fn()) { if id == 0 { self.emit_nil(); |
