1
Fork 0

Add cfg attrs to handle auto_encode transition

This commit is contained in:
Brian Anderson 2013-01-14 13:17:20 -08:00
parent fc582bcfce
commit f1d0478002
4 changed files with 58 additions and 0 deletions

View file

@ -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();