@@ -27,13 +27,14 @@ impl<K, V, S> Serialize for OrderMap<K, V, S>
2727 }
2828}
2929
30- struct OrderMapVisitor < K , V > ( PhantomData < ( K , V ) > ) ;
30+ struct OrderMapVisitor < K , V , S > ( PhantomData < ( K , V , S ) > ) ;
3131
32- impl < ' de , K , V > Visitor < ' de > for OrderMapVisitor < K , V >
32+ impl < ' de , K , V , S > Visitor < ' de > for OrderMapVisitor < K , V , S >
3333 where K : Deserialize < ' de > + Eq + Hash ,
34- V : Deserialize < ' de >
34+ V : Deserialize < ' de > ,
35+ S : Default + BuildHasher
3536{
36- type Value = OrderMap < K , V > ;
37+ type Value = OrderMap < K , V , S > ;
3738
3839 fn expecting ( & self , formatter : & mut Formatter ) -> fmt:: Result {
3940 write ! ( formatter, "a map" )
@@ -42,7 +43,7 @@ impl<'de, K, V> Visitor<'de> for OrderMapVisitor<K, V>
4243 fn visit_map < A > ( self , mut map : A ) -> Result < Self :: Value , A :: Error >
4344 where A : MapAccess < ' de >
4445 {
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 ( ) ) ;
4647
4748 while let Some ( ( key, value) ) = try!( map. next_entry ( ) ) {
4849 values. insert ( key, value) ;
@@ -53,9 +54,10 @@ impl<'de, K, V> Visitor<'de> for OrderMapVisitor<K, V>
5354}
5455
5556/// 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 >
5758 where K : Deserialize < ' de > + Eq + Hash ,
58- V : Deserialize < ' de >
59+ V : Deserialize < ' de > ,
60+ S : Default + BuildHasher
5961{
6062 fn deserialize < D > ( deserializer : D ) -> Result < Self , D :: Error >
6163 where D : Deserializer < ' de >
0 commit comments