Add cfg attrs to handle auto_encode transition
This commit is contained in:
parent
fc582bcfce
commit
f1d0478002
4 changed files with 58 additions and 0 deletions
|
@ -379,6 +379,14 @@ pub mod reader {
|
||||||
f()
|
f()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(stage0)]
|
||||||
|
fn read_struct<T>(&self, name: &str, f: fn() -> T) -> T {
|
||||||
|
debug!("read_struct(name=%s)", name);
|
||||||
|
f()
|
||||||
|
}
|
||||||
|
#[cfg(stage1)]
|
||||||
|
#[cfg(stage2)]
|
||||||
|
#[cfg(stage3)]
|
||||||
fn read_struct<T>(&self, name: &str, _len: uint, f: fn() -> T) -> T {
|
fn read_struct<T>(&self, name: &str, _len: uint, f: fn() -> T) -> T {
|
||||||
debug!("read_struct(name=%s)", name);
|
debug!("read_struct(name=%s)", name);
|
||||||
f()
|
f()
|
||||||
|
@ -658,6 +666,11 @@ pub mod writer {
|
||||||
}
|
}
|
||||||
|
|
||||||
fn emit_rec(&self, f: fn()) { f() }
|
fn emit_rec(&self, f: fn()) { f() }
|
||||||
|
#[cfg(stage0)]
|
||||||
|
fn emit_struct(&self, _name: &str, f: fn()) { f() }
|
||||||
|
#[cfg(stage1)]
|
||||||
|
#[cfg(stage2)]
|
||||||
|
#[cfg(stage3)]
|
||||||
fn emit_struct(&self, _name: &str, _len: uint, f: fn()) { f() }
|
fn emit_struct(&self, _name: &str, _len: uint, f: fn()) { f() }
|
||||||
fn emit_field(&self, name: &str, _idx: uint, f: fn()) {
|
fn emit_field(&self, name: &str, _idx: uint, f: fn()) {
|
||||||
self._emit_label(name);
|
self._emit_label(name);
|
||||||
|
|
|
@ -157,6 +157,15 @@ pub impl Encoder: serialize::Encoder {
|
||||||
f();
|
f();
|
||||||
self.wr.write_char('}');
|
self.wr.write_char('}');
|
||||||
}
|
}
|
||||||
|
#[cfg(stage0)]
|
||||||
|
fn emit_struct(&self, _name: &str, f: fn()) {
|
||||||
|
self.wr.write_char('{');
|
||||||
|
f();
|
||||||
|
self.wr.write_char('}');
|
||||||
|
}
|
||||||
|
#[cfg(stage1)]
|
||||||
|
#[cfg(stage2)]
|
||||||
|
#[cfg(stage3)]
|
||||||
fn emit_struct(&self, _name: &str, _len: uint, f: fn()) {
|
fn emit_struct(&self, _name: &str, _len: uint, f: fn()) {
|
||||||
self.wr.write_char('{');
|
self.wr.write_char('{');
|
||||||
f();
|
f();
|
||||||
|
@ -270,6 +279,13 @@ pub impl PrettyEncoder: serialize::Encoder {
|
||||||
self.indent -= 2;
|
self.indent -= 2;
|
||||||
self.wr.write_char('}');
|
self.wr.write_char('}');
|
||||||
}
|
}
|
||||||
|
#[cfg(stage0)]
|
||||||
|
fn emit_struct(&self, _name: &str, f: fn()) {
|
||||||
|
self.emit_rec(f)
|
||||||
|
}
|
||||||
|
#[cfg(stage1)]
|
||||||
|
#[cfg(stage2)]
|
||||||
|
#[cfg(stage3)]
|
||||||
fn emit_struct(&self, _name: &str, _len: uint, f: fn()) {
|
fn emit_struct(&self, _name: &str, _len: uint, f: fn()) {
|
||||||
self.emit_rec(f)
|
self.emit_rec(f)
|
||||||
}
|
}
|
||||||
|
@ -870,6 +886,16 @@ pub impl Decoder: serialize::Decoder {
|
||||||
move value
|
move value
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(stage0)]
|
||||||
|
fn read_struct<T>(&self, _name: &str, f: fn() -> T) -> T {
|
||||||
|
debug!("read_struct()");
|
||||||
|
let value = f();
|
||||||
|
self.pop();
|
||||||
|
move value
|
||||||
|
}
|
||||||
|
#[cfg(stage1)]
|
||||||
|
#[cfg(stage2)]
|
||||||
|
#[cfg(stage3)]
|
||||||
fn read_struct<T>(&self, _name: &str, _len: uint, f: fn() -> T) -> T {
|
fn read_struct<T>(&self, _name: &str, _len: uint, f: fn() -> T) -> T {
|
||||||
debug!("read_struct()");
|
debug!("read_struct()");
|
||||||
let value = f();
|
let value = f();
|
||||||
|
|
|
@ -162,6 +162,15 @@ pub impl Serializer: serialize::Encoder {
|
||||||
self.wr.write_str(~"}");
|
self.wr.write_str(~"}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[cfg(stage0)]
|
||||||
|
fn emit_struct(&self, name: &str, f: fn()) {
|
||||||
|
self.wr.write_str(fmt!("%s {", name));
|
||||||
|
f();
|
||||||
|
self.wr.write_str(~"}");
|
||||||
|
}
|
||||||
|
#[cfg(stage1)]
|
||||||
|
#[cfg(stage2)]
|
||||||
|
#[cfg(stage3)]
|
||||||
fn emit_struct(&self, name: &str, _len: uint, f: fn()) {
|
fn emit_struct(&self, name: &str, _len: uint, f: fn()) {
|
||||||
self.wr.write_str(fmt!("%s {", name));
|
self.wr.write_str(fmt!("%s {", name));
|
||||||
f();
|
f();
|
||||||
|
|
|
@ -58,6 +58,11 @@ pub trait Encoder {
|
||||||
fn emit_vec_elt(&self, idx: uint, f: fn());
|
fn emit_vec_elt(&self, idx: uint, f: fn());
|
||||||
|
|
||||||
fn emit_rec(&self, f: fn());
|
fn emit_rec(&self, f: fn());
|
||||||
|
#[cfg(stage0)]
|
||||||
|
fn emit_struct(&self, name: &str, f: fn());
|
||||||
|
#[cfg(stage1)]
|
||||||
|
#[cfg(stage2)]
|
||||||
|
#[cfg(stage3)]
|
||||||
fn emit_struct(&self, name: &str, _len: uint, f: fn());
|
fn emit_struct(&self, name: &str, _len: uint, f: fn());
|
||||||
fn emit_field(&self, f_name: &str, f_idx: uint, f: fn());
|
fn emit_field(&self, f_name: &str, f_idx: uint, f: fn());
|
||||||
|
|
||||||
|
@ -99,6 +104,11 @@ pub trait Decoder {
|
||||||
fn read_vec_elt<T>(&self, idx: uint, f: fn() -> T) -> T;
|
fn read_vec_elt<T>(&self, idx: uint, f: fn() -> T) -> T;
|
||||||
|
|
||||||
fn read_rec<T>(&self, f: fn() -> T) -> T;
|
fn read_rec<T>(&self, f: fn() -> T) -> T;
|
||||||
|
#[cfg(stage0)]
|
||||||
|
fn read_struct<T>(&self, name: &str, f: fn() -> T) -> T;
|
||||||
|
#[cfg(stage1)]
|
||||||
|
#[cfg(stage2)]
|
||||||
|
#[cfg(stage3)]
|
||||||
fn read_struct<T>(&self, name: &str, _len: uint, 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;
|
fn read_field<T>(&self, name: &str, idx: uint, f: fn() -> T) -> T;
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue