summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAnthony Ramine <n.oxyde@gmail.com>2016-09-11 18:43:22 +0200
committerAnthony Ramine <n.oxyde@gmail.com>2016-09-11 18:43:22 +0200
commitb0794d23e3a0a8d134de05c431ec8fbd905425c7 (patch)
tree47e93cca35f46a14006ac6ac159e9219592f8e63 /src
parent6a21acd17261baa1afe8b73ab99bd1b325a3a5c1 (diff)
Remove the T parameter from Deserializer
No idea how that ended up there.
Diffstat (limited to 'src')
-rw-r--r--src/de.rs22
1 files changed, 13 insertions, 9 deletions
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<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! {