proptest_arbitrary/_std/
option.rs1use super::*;
4use std::option as opt;
5use proptest::option::{self, OptionStrategy};
6
7arbitrary!(
8 [A: Arbitrary<'a>] opt::Option<A>,
9 OptionStrategy<A::Strategy>,
10 product_type![Probability, A::Parameters];
11 args => {
12 let product_unpack![prob, a] = args;
13 option::weighted(prob.into(), any_with::<A>(a))
14 }
15);
16
17arbitrary!([A: Arbitrary<'a>] opt::IntoIter<A>,
18 SMapped<'a, opt::Option<A>, Self>,
19 <opt::Option<A> as Arbitrary<'a>>::Parameters;
20 args => any_with_smap(args, Option::into_iter));
21
22#[cfg(feature = "unstable")]
23arbitrary!(opt::NoneError; opt::NoneError);
24
25#[cfg(test)]
26mod test {
27 no_panic_test!(
28 option => Option<u8>,
29 option_iter => opt::IntoIter<u8>
30 );
31
32 #[cfg(feature = "unstable")]
33 no_panic_test!(
34 none_error => opt::NoneError
35 );
36}