@@ -27,13 +27,14 @@ impl<K, V, S> Serialize for OrderMap<K, V, S>
27
27
}
28
28
}
29
29
30
- struct OrderMapVisitor < K , V > ( PhantomData < ( K , V ) > ) ;
30
+ struct OrderMapVisitor < K , V , S > ( PhantomData < ( K , V , S ) > ) ;
31
31
32
- impl < ' de , K , V > Visitor < ' de > for OrderMapVisitor < K , V >
32
+ impl < ' de , K , V , S > Visitor < ' de > for OrderMapVisitor < K , V , S >
33
33
where K : Deserialize < ' de > + Eq + Hash ,
34
- V : Deserialize < ' de >
34
+ V : Deserialize < ' de > ,
35
+ S : Default + BuildHasher
35
36
{
36
- type Value = OrderMap < K , V > ;
37
+ type Value = OrderMap < K , V , S > ;
37
38
38
39
fn expecting ( & self , formatter : & mut Formatter ) -> fmt:: Result {
39
40
write ! ( formatter, "a map" )
@@ -42,7 +43,7 @@ impl<'de, K, V> Visitor<'de> for OrderMapVisitor<K, V>
42
43
fn visit_map < A > ( self , mut map : A ) -> Result < Self :: Value , A :: Error >
43
44
where A : MapAccess < ' de >
44
45
{
45
- let mut values = OrderMap :: with_capacity ( map. size_hint ( ) . unwrap_or ( 0 ) ) ;
46
+ let mut values = OrderMap :: with_capacity_and_hasher ( map. size_hint ( ) . unwrap_or ( 0 ) , Default :: default ( ) ) ;
46
47
47
48
while let Some ( ( key, value) ) = try!( map. next_entry ( ) ) {
48
49
values. insert ( key, value) ;
@@ -53,9 +54,10 @@ impl<'de, K, V> Visitor<'de> for OrderMapVisitor<K, V>
53
54
}
54
55
55
56
/// Requires crate feature `"serde-1"`
56
- impl < ' de , K , V > Deserialize < ' de > for OrderMap < K , V >
57
+ impl < ' de , K , V , S > Deserialize < ' de > for OrderMap < K , V , S >
57
58
where K : Deserialize < ' de > + Eq + Hash ,
58
- V : Deserialize < ' de >
59
+ V : Deserialize < ' de > ,
60
+ S : Default + BuildHasher
59
61
{
60
62
fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
61
63
where D : Deserializer < ' de >
0 commit comments