diff --git a/src/reader.rs b/src/reader.rs index bce3996..8b02f51 100644 --- a/src/reader.rs +++ b/src/reader.rs @@ -1,7 +1,4 @@ -use std::io::Buffer; -use std::io::Reader; -use std::io::IoError; -use std::io::IoResult; +use std::io::Buffer; use std::io::Reader; use std::io::IoError; use std::io::IoResult; use std::io::OtherIoError; use serialize::Decoder; @@ -22,10 +19,7 @@ impl<'a, R: Reader+Buffer> Decoder for DecoderReader<'a, R> { Ok(()) } fn read_uint(&mut self) -> IoResult { - match self.reader.read_be_u64() { - Ok(x) => Ok(x as uint), - Err(e) => Err(e) - } + self.read_u64().map(|x| x as uint) } fn read_u64(&mut self) -> IoResult { self.reader.read_be_u64() @@ -40,7 +34,7 @@ impl<'a, R: Reader+Buffer> Decoder for DecoderReader<'a, R> { self.reader.read_u8() } fn read_int(&mut self) -> IoResult { - self.reader.read_be_int() + self.read_i64().map(|x| x as int) } fn read_i64(&mut self) -> IoResult { self.reader.read_be_i64() diff --git a/src/writer.rs b/src/writer.rs index 4f3ba48..87a3300 100644 --- a/src/writer.rs +++ b/src/writer.rs @@ -18,7 +18,7 @@ impl <'a, W: Writer> EncoderWriter<'a, W> { impl<'a, W: Writer> Encoder for EncoderWriter<'a, W> { fn emit_nil(&mut self) -> EwResult { Ok(()) } fn emit_uint(&mut self, v: uint) -> EwResult { - self.writer.write_be_u64(v as u64) + self.emit_u64(v as u64) } fn emit_u64(&mut self, v: u64) -> EwResult { self.writer.write_be_u64(v) @@ -33,7 +33,7 @@ impl<'a, W: Writer> Encoder for EncoderWriter<'a, W> { self.writer.write_u8(v) } fn emit_int(&mut self, v: int) -> EwResult { - self.writer.write_be_int(v) + self.emit_i64(v as i64) } fn emit_i64(&mut self, v: i64) -> EwResult { self.writer.write_be_i64(v)