summaryrefslogtreecommitdiffstats
path: root/src/schema/value.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/schema/value.rs')
-rw-r--r--src/schema/value.rs18
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 => {