From eac293d437291c3bdeb72677f6ad126a6e790084 Mon Sep 17 00:00:00 2001 From: Ed Page Date: Thu, 9 Sep 2021 11:53:51 -0500 Subject: [PATCH] refactor(de): Remove unnecessary &mut (#183) --- src/easy/de/array.rs | 2 +- src/easy/de/inline_table.rs | 2 +- src/easy/de/item.rs | 6 ++---- src/easy/de/mod.rs | 10 ++++------ src/easy/de/table.rs | 2 +- src/easy/de/value.rs | 6 ++---- 6 files changed, 11 insertions(+), 17 deletions(-) diff --git a/src/easy/de/array.rs b/src/easy/de/array.rs index f545d2fa..c767972d 100644 --- a/src/easy/de/array.rs +++ b/src/easy/de/array.rs @@ -29,7 +29,7 @@ impl<'de> serde::de::SeqAccess<'de> for ArraySeqAccess { { match self.iter.next() { Some(v) => seed - .deserialize(&mut crate::easy::de::ItemDeserializer::new(v)) + .deserialize(crate::easy::de::ItemDeserializer::new(v)) .map(Some), None => Ok(None), } diff --git a/src/easy/de/inline_table.rs b/src/easy/de/inline_table.rs index dcda5528..deb182bc 100644 --- a/src/easy/de/inline_table.rs +++ b/src/easy/de/inline_table.rs @@ -37,7 +37,7 @@ impl<'de> serde::de::MapAccess<'de> for InlineTableMapAccess { V: serde::de::DeserializeSeed<'de>, { match self.value.take() { - Some(v) => seed.deserialize(&mut crate::easy::de::ItemDeserializer::new(v)), + Some(v) => seed.deserialize(crate::easy::de::ItemDeserializer::new(v)), None => { panic!("no more values in next_value_seed, internal error in ValueDeserializer") } diff --git a/src/easy/de/item.rs b/src/easy/de/item.rs index cee30639..1081f501 100644 --- a/src/easy/de/item.rs +++ b/src/easy/de/item.rs @@ -10,16 +10,14 @@ impl ItemDeserializer { } } -impl<'de, 'a> serde::Deserializer<'de> for &'a mut ItemDeserializer { +impl<'de, 'a> serde::Deserializer<'de> for ItemDeserializer { type Error = Error; fn deserialize_any(self, visitor: V) -> Result where V: serde::de::Visitor<'de>, { - let mut input = Default::default(); - std::mem::swap(&mut input, &mut self.input); - match input { + match self.input { crate::Item::None => visitor.visit_none(), crate::Item::Value(v) => { crate::easy::de::ValueDeserializer::new(v).deserialize_any(visitor) diff --git a/src/easy/de/mod.rs b/src/easy/de/mod.rs index 1618cf9e..011b9cc1 100644 --- a/src/easy/de/mod.rs +++ b/src/easy/de/mod.rs @@ -87,8 +87,8 @@ pub fn from_document(d: crate::Document) -> Result where T: Deserialize<'static>, { - let mut deserializer = Deserializer::new(d); - T::deserialize(&mut deserializer) + let deserializer = Deserializer::new(d); + T::deserialize(deserializer) } /// Deserialization implementation for TOML. @@ -103,16 +103,14 @@ impl Deserializer { } } -impl<'de, 'a> serde::Deserializer<'de> for &'a mut Deserializer { +impl<'de, 'a> serde::Deserializer<'de> for Deserializer { type Error = Error; fn deserialize_any(self, visitor: V) -> Result where V: serde::de::Visitor<'de>, { - let mut input = Default::default(); - std::mem::swap(&mut input, &mut self.input.root); - ItemDeserializer::new(input).deserialize_any(visitor) + ItemDeserializer::new(self.input.root).deserialize_any(visitor) } // `None` is interpreted as a missing field so be sure to implement `Some` diff --git a/src/easy/de/table.rs b/src/easy/de/table.rs index a9dcaa47..b9bf4901 100644 --- a/src/easy/de/table.rs +++ b/src/easy/de/table.rs @@ -37,7 +37,7 @@ impl<'de> serde::de::MapAccess<'de> for TableMapAccess { V: serde::de::DeserializeSeed<'de>, { match self.value.take() { - Some(v) => seed.deserialize(&mut crate::easy::de::ItemDeserializer::new(v)), + Some(v) => seed.deserialize(crate::easy::de::ItemDeserializer::new(v)), None => { panic!("no more values in next_value_seed, internal error in ValueDeserializer") } diff --git a/src/easy/de/value.rs b/src/easy/de/value.rs index c380a4d4..18638f84 100644 --- a/src/easy/de/value.rs +++ b/src/easy/de/value.rs @@ -10,16 +10,14 @@ impl ValueDeserializer { } } -impl<'de, 'a> serde::Deserializer<'de> for &'a mut ValueDeserializer { +impl<'de, 'a> serde::Deserializer<'de> for ValueDeserializer { type Error = Error; fn deserialize_any(self, visitor: V) -> Result where V: serde::de::Visitor<'de>, { - let mut input: crate::Value = 0.into(); - std::mem::swap(&mut input, &mut self.input); - match input { + match self.input { crate::Value::String(v) => visitor.visit_string(v.into_value()), crate::Value::Integer(v) => visitor.visit_i64(v.into_value()), crate::Value::Float(v) => visitor.visit_f64(v.into_value()),