From b0794d23e3a0a8d134de05c431ec8fbd905425c7 Mon Sep 17 00:00:00 2001 From: Anthony Ramine Date: Sun, 11 Sep 2016 18:43:22 +0200 Subject: Remove the T parameter from Deserializer No idea how that ended up there. --- src/de.rs | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) (limited to 'src') diff --git a/src/de.rs b/src/de.rs index ec84ff2..8925f52 100644 --- a/src/de.rs +++ b/src/de.rs @@ -3,8 +3,7 @@ use serde::de; use serde::de::value::MapDeserializer; use std::borrow::Cow; -use std::marker::PhantomData; -use url::form_urlencoded::Parse; +use url::form_urlencoded::Parse as UrlEncodedParse; pub use serde::de::value::Error; @@ -17,12 +16,17 @@ pub use serde::de::value::Error; /// /// * Everything else but `deserialize_seq` and `deserialize_seq_fixed_size` /// defers to `deserialize`. -pub struct Deserializer<'a, T> { - deserializer: MapDeserializer, Cow<'a, str>, Cow<'a, str>, Error>, - marker: PhantomData, +pub struct Deserializer<'a>( + MapDeserializer, Cow<'a, str>, Cow<'a, str>, Error>); + +impl<'a> Deserializer<'a> { + /// Returns a new `Deserializer`. + pub fn new(parser: UrlEncodedParse<'a>) -> Self { + Deserializer(MapDeserializer::unbounded(parser)) + } } -impl<'a, T> de::Deserializer for Deserializer<'a, T> +impl<'a> de::Deserializer for Deserializer<'a> { type Error = Error; @@ -39,7 +43,7 @@ impl<'a, T> de::Deserializer for Deserializer<'a, T> -> Result where V: de::Visitor, { - visitor.visit_map(&mut self.deserializer) + visitor.visit_map(&mut self.0) } fn deserialize_seq( @@ -47,7 +51,7 @@ impl<'a, T> de::Deserializer for Deserializer<'a, T> -> Result where V: de::Visitor, { - visitor.visit_seq(&mut self.deserializer) + visitor.visit_seq(&mut self.0) } fn deserialize_seq_fixed_size( @@ -55,7 +59,7 @@ impl<'a, T> de::Deserializer for Deserializer<'a, T> -> Result where V: de::Visitor { - visitor.visit_seq(&mut self.deserializer) + visitor.visit_seq(&mut self.0) } forward_to_deserialize! { -- cgit v1.2.3