#[cfg(feature = "arbitrary")] use quickcheck::{Arbitrary, Gen}; use rand::{Rand, Rng}; /// Simple helper function for rejection sampling #[cfg(feature = "arbitrary")] #[doc(hidden)] #[inline] pub fn reject bool, T: Arbitrary>(g: &mut G, f: F) -> T { use std::iter; iter::repeat(()) .map(|_| Arbitrary::arbitrary(g)) .find(f) .unwrap() } #[doc(hidden)] #[inline] pub fn reject_rand bool, T: Rand>(g: &mut G, f: F) -> T { use std::iter; iter::repeat(()).map(|_| Rand::rand(g)).find(f).unwrap() }