]> git.lizzy.rs Git - rust.git/commitdiff
std: remove Encoder::read_rec and Decoder::emit_rec
authorErick Tryzelaar <erick.tryzelaar@gmail.com>
Fri, 29 Mar 2013 05:19:43 +0000 (22:19 -0700)
committerErick Tryzelaar <erick.tryzelaar@gmail.com>
Fri, 29 Mar 2013 14:05:54 +0000 (07:05 -0700)
src/librustc/middle/astencode.rs
src/libstd/ebml.rs
src/libstd/json.rs
src/libstd/serialize.rs
src/libsyntax/ext/auto_encode.rs

index c2692e9fa105d53b9496570e80dc4395345d72a7..719ffe9bb87d775a72f58ab0ee0ee3c6258bb2da 100644 (file)
@@ -558,7 +558,7 @@ fn read_method_map_entry(&self, xcx: @ExtendedDecodeContext)
 fn encode_method_map_entry(ecx: @e::EncodeContext,
                               ebml_w: writer::Encoder,
                               mme: method_map_entry) {
-    do ebml_w.emit_rec {
+    do ebml_w.emit_struct("method_map_entry", 3) {
         do ebml_w.emit_field(~"self_arg", 0u) {
             ebml_w.emit_arg(ecx, mme.self_arg);
         }
@@ -574,7 +574,7 @@ fn encode_method_map_entry(ecx: @e::EncodeContext,
 impl read_method_map_entry_helper for reader::Decoder {
     fn read_method_map_entry(&self, xcx: @ExtendedDecodeContext)
         -> method_map_entry {
-        do self.read_rec {
+        do self.read_struct("method_map_entry", 3) {
             method_map_entry {
                 self_arg: self.read_field(~"self_arg", 0u, || {
                     self.read_arg(xcx)
@@ -817,7 +817,7 @@ fn emit_bounds(&self, ecx: @e::EncodeContext, bs: ty::param_bounds) {
 
     fn emit_tpbt(&self, ecx: @e::EncodeContext,
                  tpbt: ty::ty_param_bounds_and_ty) {
-        do self.emit_rec {
+        do self.emit_struct("ty_param_bounds_and_ty", 3) {
             do self.emit_field(~"bounds", 0) {
                 do self.emit_from_vec(*tpbt.bounds) |bs| {
                     self.emit_bounds(ecx, *bs);
@@ -1084,7 +1084,7 @@ fn read_bounds(&self, xcx: @ExtendedDecodeContext)
     fn read_ty_param_bounds_and_ty(&self, xcx: @ExtendedDecodeContext)
         -> ty::ty_param_bounds_and_ty
     {
-        do self.read_rec {
+        do self.read_struct("ty_param_bounds_and_ty", 3) {
             ty::ty_param_bounds_and_ty {
                 bounds: self.read_field(~"bounds", 0u, || {
                     @self.read_to_vec(|| self.read_bounds(xcx) )
index 12a4ea149093a97fb5bee6c48423d06cd1adf9b3..6b216504e543efec94d5f7ccf9ec45f2ff366b19 100644 (file)
@@ -362,11 +362,6 @@ fn read_seq_elt<T>(&self, idx: uint, f: &fn() -> T) -> T {
             self.push_doc(self.next_doc(EsVecElt), f)
         }
 
-        fn read_rec<T>(&self, f: &fn() -> T) -> T {
-            debug!("read_rec()");
-            f()
-        }
-
         fn read_struct<T>(&self, name: &str, _len: uint, f: &fn() -> T) -> T {
             debug!("read_struct(name=%s)", name);
             f()
@@ -644,7 +639,6 @@ fn emit_seq_elt(&self, _idx: uint, f: &fn()) {
             self.wr_tag(EsVecElt as uint, f)
         }
 
-        fn emit_rec(&self, f: &fn()) { f() }
         fn emit_struct(&self, _name: &str, _len: uint, f: &fn()) { f() }
         fn emit_field(&self, name: &str, _idx: uint, f: &fn()) {
             self._emit_label(name);
index fe5b0cf88e674445e1da11f4b39fb95c19a51151..ac7119d8ed8c5f9599e282e9cb593a7f8439f677 100644 (file)
@@ -141,11 +141,6 @@ fn emit_seq_elt(&self, idx: uint, f: &fn()) {
         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 @@ fn emit_seq_elt(&self, idx: uint, f: &fn()) {
         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 @@ fn emit_field(&self, name: &str, idx: uint, f: &fn()) {
     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 @@ fn read_seq_elt<T>(&self, idx: uint, f: &fn() -> T) -> T {
         }
     }
 
-    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 @@ fn read_struct<T>(&self, _name: &str, _len: uint, f: &fn() -> T) -> T {
     }
 
     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) => {
index d0127bb09991528bbf140575cb7c2eb4033fb3cd..83201653474011190c98f82fa3b1a6043e80ec12 100644 (file)
@@ -49,7 +49,6 @@ pub trait Encoder {
     fn emit_seq(&self, len: uint, f: &fn());
     fn emit_seq_elt(&self, idx: uint, f: &fn());
 
-    fn emit_rec(&self, f: &fn());
     fn emit_struct(&self, name: &str, _len: uint, f: &fn());
     fn emit_field(&self, f_name: &str, f_idx: uint, f: &fn());
 
@@ -92,7 +91,6 @@ pub trait Decoder {
     fn read_seq<T>(&self, f: &fn(uint) -> T) -> T;
     fn read_seq_elt<T>(&self, idx: uint, f: &fn() -> T) -> T;
 
-    fn read_rec<T>(&self, f: &fn() -> T) -> T;
     fn read_struct<T>(&self, name: &str, _len: uint, f: &fn() -> T) -> T;
     fn read_field<T>(&self, name: &str, idx: uint, f: &fn() -> T) -> T;
 
index d4e1fa3abf737242f67d1eafa4f3b9669aad2411..3aceef9c73ada3332fe7140fbd5a60c5db901f5b 100644 (file)
@@ -1262,9 +1262,6 @@ fn emit_seq_elt(&self, +_idx: uint, f: &fn()) {
             self.add_unknown_to_log(); f();
         }
 
-        fn emit_rec(&self, f: &fn()) {
-            self.add_unknown_to_log(); f();
-        }
         fn emit_struct(&self, name: &str, +len: uint, f: &fn()) {
             self.add_to_log(CallToEmitStruct (name.to_str(),len)); f();
         }