diff options
author | Anthony Ramine <n.oxyde@gmail.com> | 2016-09-11 18:43:22 +0200 |
---|---|---|
committer | Anthony Ramine <n.oxyde@gmail.com> | 2016-09-11 18:43:22 +0200 |
commit | b0794d23e3a0a8d134de05c431ec8fbd905425c7 (patch) | |
tree | 47e93cca35f46a14006ac6ac159e9219592f8e63 /src | |
parent | 6a21acd17261baa1afe8b73ab99bd1b325a3a5c1 (diff) |
Remove the T parameter from Deserializer
No idea how that ended up there.
Diffstat (limited to 'src')
-rw-r--r-- | src/de.rs | 22 |
1 files changed, 13 insertions, 9 deletions
@@ -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<Parse<'a>, Cow<'a, str>, Cow<'a, str>, Error>, - marker: PhantomData<T>, +pub struct Deserializer<'a>( + MapDeserializer<UrlEncodedParse<'a>, 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<V::Value, Self::Error> where V: de::Visitor, { - visitor.visit_map(&mut self.deserializer) + visitor.visit_map(&mut self.0) } fn deserialize_seq<V>( @@ -47,7 +51,7 @@ impl<'a, T> de::Deserializer for Deserializer<'a, T> -> Result<V::Value, Self::Error> where V: de::Visitor, { - visitor.visit_seq(&mut self.deserializer) + visitor.visit_seq(&mut self.0) } fn deserialize_seq_fixed_size<V>( @@ -55,7 +59,7 @@ impl<'a, T> de::Deserializer for Deserializer<'a, T> -> Result<V::Value, Self::Error> where V: de::Visitor { - visitor.visit_seq(&mut self.deserializer) + visitor.visit_seq(&mut self.0) } forward_to_deserialize! { |