diff --git a/src/urlencoded/ser.rs b/src/urlencoded/ser.rs index 874c6b08..9e6c5846 100644 --- a/src/urlencoded/ser.rs +++ b/src/urlencoded/ser.rs @@ -465,8 +465,8 @@ where value: &V, ) -> Result<(), Error> { let key_sink = key::KeySink::new(|key| { - let value_sink = value::ValueSink::new(self.urlencoder, &key); - value.serialize(part::PartSerializer::new(value_sink))?; + let mut value_sink = value::ValueSink::new(self.urlencoder, &key); + value.serialize(part::PartSerializer::new(&mut value_sink))?; self.key = None; Ok(()) }); @@ -490,8 +490,8 @@ where ) -> Result<(), Error> { { let key = self.key.as_ref().ok_or_else(Error::no_key)?; - let value_sink = value::ValueSink::new(self.urlencoder, &key); - value.serialize(part::PartSerializer::new(value_sink))?; + let mut value_sink = value::ValueSink::new(self.urlencoder, &key); + value.serialize(part::PartSerializer::new(&mut value_sink))?; } self.key = None; Ok(()) @@ -515,8 +515,8 @@ where key: &'static str, value: &T, ) -> Result<(), Error> { - let value_sink = value::ValueSink::new(self.urlencoder, key); - value.serialize(part::PartSerializer::new(value_sink)) + let mut value_sink = value::ValueSink::new(self.urlencoder, key); + value.serialize(part::PartSerializer::new(&mut value_sink)) } fn end(self) -> Result { diff --git a/src/urlencoded/ser/pair.rs b/src/urlencoded/ser/pair.rs index 5e991968..c12c404e 100644 --- a/src/urlencoded/ser/pair.rs +++ b/src/urlencoded/ser/pair.rs @@ -225,8 +225,8 @@ where } PairState::WaitingForValue { key } => { let result = { - let value_sink = ValueSink::new(self.urlencoder, &key); - let value_serializer = PartSerializer::new(value_sink); + let mut value_sink = ValueSink::new(self.urlencoder, &key); + let value_serializer = PartSerializer::new(&mut value_sink); value.serialize(value_serializer) }; if result.is_ok() { diff --git a/src/urlencoded/ser/value.rs b/src/urlencoded/ser/value.rs index 37aa3b11..344a4280 100644 --- a/src/urlencoded/ser/value.rs +++ b/src/urlencoded/ser/value.rs @@ -30,8 +30,8 @@ where } } -impl<'input, 'key, 'target, Target> Sink - for ValueSink<'input, 'key, 'target, Target> +impl<'a, 'input, 'key, 'target, Target> Sink + for &'a mut ValueSink<'input, 'key, 'target, Target> where Target: 'target + UrlEncodedTarget, {