Function proptest::arbitrary::arbitrary [−][src]
#[must_use = "strategies do nothing unless used"]pub fn arbitrary<A, S>() -> S where
S: Strategy<Value = A>,
A: Arbitrary<Strategy = S>,
Generates a Strategy
producing Arbitrary
values of A
.
Works better with type inference than any::<A>()
.
With this version, you shouldn't need to specify any of the (many) type
parameters explicitly. This can have a positive effect on type inference.
However, if you want specify A
, you should use any::<A>()
instead.
For clarity, it is often a good idea to specify the type generated, and
so using any::<A>()
can be a good idea.
If you want to customize how the strategy is generated, use
arbitrary_with(args)
where args
is of type
<A as Arbitrary>::Parameters
.
Example
The function can be used as:
extern crate proptest; use proptest::arbitrary::{arbitrary, StrategyFor}; fn gen_vec_usize() -> StrategyFor<Vec<usize>> { arbitrary() }