arbitrary/foreign/std/collections/
hash_set.rs

1use {
2    crate::{Arbitrary, Result, Unstructured},
3    std::{
4        collections::hash_set::HashSet,
5        hash::{BuildHasher, Hash},
6    },
7};
8
9impl<'a, A, S> Arbitrary<'a> for HashSet<A, S>
10where
11    A: Arbitrary<'a> + Eq + Hash,
12    S: BuildHasher + Default,
13{
14    fn arbitrary(u: &mut Unstructured<'a>) -> Result<Self> {
15        u.arbitrary_iter()?.collect()
16    }
17
18    fn arbitrary_take_rest(u: Unstructured<'a>) -> Result<Self> {
19        u.arbitrary_take_rest_iter()?.collect()
20    }
21
22    #[inline]
23    fn size_hint(_depth: usize) -> (usize, Option<usize>) {
24        (0, None)
25    }
26}