From d858c1f2d06f977b4d3c26ea82c72eb04bcf5fad Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Thu, 28 Jul 2016 11:01:22 -0700 Subject: Update to serde 0.8.0 --- src/encoder/serde.rs | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'src/encoder') diff --git a/src/encoder/serde.rs b/src/encoder/serde.rs index 9c2f602..fcccc3d 100644 --- a/src/encoder/serde.rs +++ b/src/encoder/serde.rs @@ -128,12 +128,15 @@ impl ser::Serializer for Encoder { fn serialize_map(&mut self, _len: Option) -> Result { self.table_begin() } - fn serialize_map_elt(&mut self, _state: &mut Encoder, key: K, value: V) -> Result<(), Error> - where K: ser::Serialize, V: ser::Serialize + fn serialize_map_key(&mut self, _state: &mut Encoder, key: K) -> Result<(), Error> + where K: ser::Serialize { - try!(self.table_key(|me| key.serialize(me))); - try!(value.serialize(self)); - Ok(()) + self.table_key(|me| key.serialize(me)) + } + fn serialize_map_value(&mut self, _state: &mut Encoder, value: V) -> Result<(), Error> + where V: ser::Serialize + { + value.serialize(self) } fn serialize_map_end(&mut self, state: Self) -> Result<(), Error> { self.table_end(state) @@ -144,7 +147,8 @@ impl ser::Serializer for Encoder { fn serialize_struct_elt(&mut self, state: &mut Encoder, key: &'static str, value: V) -> Result<(), Error> where V: ser::Serialize { - self.serialize_map_elt(state, key, value) + try!(self.serialize_map_key(state, key)); + self.serialize_map_value(state, value) } fn serialize_struct_end(&mut self, state: Self) -> Result<(), Error> { self.serialize_map_end(state) @@ -155,7 +159,8 @@ impl ser::Serializer for Encoder { fn serialize_struct_variant_elt(&mut self, state: &mut Encoder, key: &'static str, value: V) -> Result<(), Error> where V: ser::Serialize { - self.serialize_map_elt(state, key, value) + try!(self.serialize_map_key(state, key)); + self.serialize_map_value(state, value) } fn serialize_struct_variant_end(&mut self, state: Self) -> Result<(), Error> { self.serialize_map_end(state) @@ -208,7 +213,8 @@ impl ser::Serialize for Value { Value::Table(ref t) => { let mut state = try!(e.serialize_map(Some(t.len()))); for (k, v) in t.iter() { - try!(e.serialize_map_elt(&mut state, k, v)); + try!(e.serialize_map_key(&mut state, k)); + try!(e.serialize_map_value(&mut state, v)); } e.serialize_map_end(state) } -- cgit v1.2.3