diff options
Diffstat (limited to 'src/schema/value.rs')
-rw-r--r-- | src/schema/value.rs | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/src/schema/value.rs b/src/schema/value.rs index 8e5ee41..ad24688 100644 --- a/src/schema/value.rs +++ b/src/schema/value.rs @@ -130,25 +130,23 @@ mod binary_serialize { const I64_CODE: u8 = 2; impl BinarySerializable for Value { - fn serialize(&self, writer: &mut Write) -> io::Result<usize> { - let mut written_size = 0; + fn serialize<W: Write>(&self, writer: &mut W) -> io::Result<()> { match *self { Value::Str(ref text) => { - written_size += try!(TEXT_CODE.serialize(writer)); - written_size += try!(text.serialize(writer)); + TEXT_CODE.serialize(writer)?; + text.serialize(writer) } Value::U64(ref val) => { - written_size += try!(U64_CODE.serialize(writer)); - written_size += try!(val.serialize(writer)); + U64_CODE.serialize(writer)?; + val.serialize(writer) } Value::I64(ref val) => { - written_size += try!(I64_CODE.serialize(writer)); - written_size += try!(val.serialize(writer)); + I64_CODE.serialize(writer)?; + val.serialize(writer) } } - Ok(written_size) } - fn deserialize(reader: &mut Read) -> io::Result<Self> { + fn deserialize<R: Read>(reader: &mut R) -> io::Result<Self> { let type_code = try!(u8::deserialize(reader)); match type_code { TEXT_CODE => { |