Remove the T parameter from Deserializer

No idea how that ended up there.
This commit is contained in:
Anthony Ramine 2016-09-11 18:43:22 +02:00
parent 6a21acd172
commit b0794d23e3

View File

@ -3,8 +3,7 @@
use serde::de; use serde::de;
use serde::de::value::MapDeserializer; use serde::de::value::MapDeserializer;
use std::borrow::Cow; use std::borrow::Cow;
use std::marker::PhantomData; use url::form_urlencoded::Parse as UrlEncodedParse;
use url::form_urlencoded::Parse;
pub use serde::de::value::Error; 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` /// * Everything else but `deserialize_seq` and `deserialize_seq_fixed_size`
/// defers to `deserialize`. /// defers to `deserialize`.
pub struct Deserializer<'a, T> { pub struct Deserializer<'a>(
deserializer: MapDeserializer<Parse<'a>, Cow<'a, str>, Cow<'a, str>, Error>, MapDeserializer<UrlEncodedParse<'a>, Cow<'a, str>, Cow<'a, str>, Error>);
marker: PhantomData<T>,
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; type Error = Error;
@ -39,7 +43,7 @@ impl<'a, T> de::Deserializer for Deserializer<'a, T>
-> Result<V::Value, Self::Error> -> Result<V::Value, Self::Error>
where V: de::Visitor, where V: de::Visitor,
{ {
visitor.visit_map(&mut self.deserializer) visitor.visit_map(&mut self.0)
} }
fn deserialize_seq<V>( fn deserialize_seq<V>(
@ -47,7 +51,7 @@ impl<'a, T> de::Deserializer for Deserializer<'a, T>
-> Result<V::Value, Self::Error> -> Result<V::Value, Self::Error>
where V: de::Visitor, where V: de::Visitor,
{ {
visitor.visit_seq(&mut self.deserializer) visitor.visit_seq(&mut self.0)
} }
fn deserialize_seq_fixed_size<V>( fn deserialize_seq_fixed_size<V>(
@ -55,7 +59,7 @@ impl<'a, T> de::Deserializer for Deserializer<'a, T>
-> Result<V::Value, Self::Error> -> Result<V::Value, Self::Error>
where V: de::Visitor where V: de::Visitor
{ {
visitor.visit_seq(&mut self.deserializer) visitor.visit_seq(&mut self.0)
} }
forward_to_deserialize! { forward_to_deserialize! {