about summary refs log tree commit diff
path: root/src/libstd/json.rs
diff options
context:
space:
mode:
authorErick Tryzelaar <erick.tryzelaar@gmail.com>2013-03-28 22:19:43 -0700
committerErick Tryzelaar <erick.tryzelaar@gmail.com>2013-03-29 07:05:54 -0700
commit90b3658cd69f63d95f3bf568e6f23406c56f11a7 (patch)
tree40ec4badb694e21123f60f079f48a550778019e6 /src/libstd/json.rs
parente99cdcfba847ade51791afbc95478306c6c3e7c1 (diff)
downloadrust-90b3658cd69f63d95f3bf568e6f23406c56f11a7.tar.gz
rust-90b3658cd69f63d95f3bf568e6f23406c56f11a7.zip
std: remove Encoder::read_rec and Decoder::emit_rec
Diffstat (limited to 'src/libstd/json.rs')
-rw-r--r--src/libstd/json.rs51
1 files changed, 18 insertions, 33 deletions
diff --git a/src/libstd/json.rs b/src/libstd/json.rs
index fe5b0cf88e6..ac7119d8ed8 100644
--- a/src/libstd/json.rs
+++ b/src/libstd/json.rs
@@ -141,11 +141,6 @@ impl serialize::Encoder for Encoder {
         f()
     }
 
-    fn emit_rec(&self, f: &fn()) {
-        self.wr.write_char('{');
-        f();
-        self.wr.write_char('}');
-    }
     fn emit_struct(&self, _name: &str, _len: uint, f: &fn()) {
         self.wr.write_char('{');
         f();
@@ -253,20 +248,17 @@ impl serialize::Encoder for PrettyEncoder {
         f()
     }
 
-    fn emit_rec(&self, f: &fn()) {
-        self.wr.write_char('{');
-        self.indent += 2;
-        f();
-        self.wr.write_char('\n');
-        self.indent -= 2;
-        self.wr.write_str(spaces(self.indent));
-        self.wr.write_char('}');
-    }
     fn emit_struct(&self, _name: &str, len: uint, f: &fn()) {
         if len == 0 {
             self.wr.write_str("{}");
         } else {
-            self.emit_rec(f)
+            self.wr.write_char('{');
+            self.indent += 2;
+            f();
+            self.wr.write_char('\n');
+            self.indent -= 2;
+            self.wr.write_str(spaces(self.indent));
+            self.wr.write_char('}');
         }
     }
     fn emit_field(&self, name: &str, idx: uint, f: &fn()) {
@@ -286,25 +278,25 @@ impl serialize::Encoder for PrettyEncoder {
     fn emit_option_some(&self, f: &fn()) { f(); }
 }
 
-impl<S:serialize::Encoder> serialize::Encodable<S> for Json {
-    fn encode(&self, s: &S) {
+impl<E: serialize::Encoder> serialize::Encodable<E> for Json {
+    fn encode(&self, e: &E) {
         match *self {
-            Number(v) => v.encode(s),
-            String(ref v) => v.encode(s),
-            Boolean(v) => v.encode(s),
-            List(ref v) => v.encode(s),
+            Number(v) => v.encode(e),
+            String(ref v) => v.encode(e),
+            Boolean(v) => v.encode(e),
+            List(ref v) => v.encode(e),
             Object(ref v) => {
-                do s.emit_rec || {
+                do e.emit_struct("Object", v.len())|| {
                     let mut idx = 0;
                     for v.each |&(key, value)| {
-                        do s.emit_field(*key, idx) {
-                            value.encode(s);
+                        do e.emit_field(*key, idx) {
+                            value.encode(e);
                         }
                         idx += 1;
                     }
                 }
             },
-            Null => s.emit_nil(),
+            Null => e.emit_nil(),
         }
     }
 }
@@ -855,13 +847,6 @@ impl<'self> serialize::Decoder for Decoder<'self> {
         }
     }
 
-    fn read_rec<T>(&self, f: &fn() -> T) -> T {
-        debug!("read_rec()");
-        let value = f();
-        self.pop();
-        value
-    }
-
     fn read_struct<T>(&self, _name: &str, _len: uint, f: &fn() -> T) -> T {
         debug!("read_struct()");
         let value = f();
@@ -870,7 +855,7 @@ impl<'self> serialize::Decoder for Decoder<'self> {
     }
 
     fn read_field<T>(&self, name: &str, idx: uint, f: &fn() -> T) -> T {
-        debug!("read_rec_field(%s, idx=%u)", name, idx);
+        debug!("read_field(%s, idx=%u)", name, idx);
         let top = self.peek();
         match *top {
             Object(ref obj) => {