Skip to content

Commit a1112fc

Browse files
author
Hans Christian Schmitz
committed
Support custom hashers for HashMap/-Set
1 parent 5ec3b33 commit a1112fc

File tree

1 file changed

+6
-3
lines changed

1 file changed

+6
-3
lines changed

src/lib.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@ use core::time::Duration;
4545
use std::borrow::{Cow, ToOwned};
4646
use std::collections::{BTreeMap, BTreeSet, BinaryHeap, HashMap, HashSet, LinkedList, VecDeque};
4747
use std::ffi::{CString, OsString};
48+
use std::hash::BuildHasher;
4849
use std::net::{Ipv4Addr, Ipv6Addr};
4950
use std::path::PathBuf;
5051
use std::rc::Rc;
@@ -736,8 +737,8 @@ impl<'a, A: Arbitrary<'a> + Ord> Arbitrary<'a> for BinaryHeap<A> {
736737
}
737738
}
738739

739-
impl<'a, K: Arbitrary<'a> + Eq + ::std::hash::Hash, V: Arbitrary<'a>> Arbitrary<'a>
740-
for HashMap<K, V>
740+
impl<'a, K: Arbitrary<'a> + Eq + ::std::hash::Hash, V: Arbitrary<'a>, S: BuildHasher + Default>
741+
Arbitrary<'a> for HashMap<K, V, S>
741742
{
742743
fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self> {
743744
u.arbitrary_iter()?.collect()
@@ -753,7 +754,9 @@ impl<'a, K: Arbitrary<'a> + Eq + ::std::hash::Hash, V: Arbitrary<'a>> Arbitrary<
753754
}
754755
}
755756

756-
impl<'a, A: Arbitrary<'a> + Eq + ::std::hash::Hash> Arbitrary<'a> for HashSet<A> {
757+
impl<'a, A: Arbitrary<'a> + Eq + ::std::hash::Hash, S: BuildHasher + Default> Arbitrary<'a>
758+
for HashSet<A, S>
759+
{
757760
fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self> {
758761
u.arbitrary_iter()?.collect()
759762
}

0 commit comments

Comments
 (0)