From 30606a43aafc6be6869a4ce8eea6c826f7ec1eea Mon Sep 17 00:00:00 2001 From: David Tolnay Date: Fri, 20 Oct 2017 21:36:40 -0700 Subject: [PATCH] IntoDeserializer for HashSet and HashMap with non-default hasher --- serde/src/de/value.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/serde/src/de/value.rs b/serde/src/de/value.rs index 3575c53d..d95b730f 100644 --- a/serde/src/de/value.rs +++ b/serde/src/de/value.rs @@ -754,12 +754,13 @@ where } #[cfg(feature = "std")] -impl<'de, T, E> IntoDeserializer<'de, E> for HashSet +impl<'de, T, S, E> IntoDeserializer<'de, E> for HashSet where T: IntoDeserializer<'de, E> + Eq + Hash, + S: BuildHasher, E: de::Error, { - type Deserializer = SeqDeserializer< as IntoIterator>::IntoIter, E>; + type Deserializer = SeqDeserializer< as IntoIterator>::IntoIter, E>; fn into_deserializer(self) -> Self::Deserializer { SeqDeserializer::new(self.into_iter()) @@ -1160,13 +1161,14 @@ where } #[cfg(feature = "std")] -impl<'de, K, V, E> IntoDeserializer<'de, E> for HashMap +impl<'de, K, V, S, E> IntoDeserializer<'de, E> for HashMap where K: IntoDeserializer<'de, E> + Eq + Hash, V: IntoDeserializer<'de, E>, + S: BuildHasher, E: de::Error, { - type Deserializer = MapDeserializer<'de, as IntoIterator>::IntoIter, E>; + type Deserializer = MapDeserializer<'de, as IntoIterator>::IntoIter, E>; fn into_deserializer(self) -> Self::Deserializer { MapDeserializer::new(self.into_iter())