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