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()
|
||||
}
|
||||
|
||||
#[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 {
|
||||
debug!("read_struct(name=%s)", name);
|
||||
f()
|
||||
|
@ -658,6 +666,11 @@ pub mod writer {
|
|||
}
|
||||
|
||||
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_field(&self, name: &str, _idx: uint, f: fn()) {
|
||||
self._emit_label(name);
|
||||
|
|
|
@ -157,6 +157,15 @@ pub impl Encoder: serialize::Encoder {
|
|||
f();
|
||||
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()) {
|
||||
self.wr.write_char('{');
|
||||
f();
|
||||
|
@ -270,6 +279,13 @@ pub impl PrettyEncoder: serialize::Encoder {
|
|||
self.indent -= 2;
|
||||
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()) {
|
||||
self.emit_rec(f)
|
||||
}
|
||||
|
@ -870,6 +886,16 @@ pub impl Decoder: serialize::Decoder {
|
|||
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 {
|
||||
debug!("read_struct()");
|
||||
let value = f();
|
||||
|
|
|
@ -162,6 +162,15 @@ pub impl Serializer: serialize::Encoder {
|
|||
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()) {
|
||||
self.wr.write_str(fmt!("%s {", name));
|
||||
f();
|
||||
|
|
|
@ -58,6 +58,11 @@ pub trait Encoder {
|
|||
fn emit_vec_elt(&self, idx: uint, 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_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_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_field<T>(&self, name: &str, idx: uint, f: fn() -> T) -> T;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue