[−][src]Trait quickcheck::Arbitrary
Arbitrary
describes types whose values can be randomly generated and
shrunk.
Aside from shrinking, Arbitrary
is different from the std::Rand
trait
in that it uses a Gen
to control the distribution of random values.
As of now, all types that implement Arbitrary
must also implement
Clone
. (I'm not sure if this is a permanent restriction.)
They must also be sendable and static since every test is run in its own
thread using thread::Builder::spawn
, which requires the Send + 'static
bounds.
Required methods
Loading content...Provided methods
Loading content...Implementations on Foreign Types
impl Arbitrary for ()
[src]
impl Arbitrary for bool
[src]
impl<A: Arbitrary> Arbitrary for Option<A>
[src]
fn arbitrary<G: Gen>(g: &mut G) -> Option<A>
[src]
fn shrink(&self) -> Box<dyn Iterator<Item = Option<A>>>
[src]
impl<A: Arbitrary, B: Arbitrary> Arbitrary for Result<A, B>
[src]
fn arbitrary<G: Gen>(g: &mut G) -> Result<A, B>
[src]
fn shrink(&self) -> Box<dyn Iterator<Item = Result<A, B>>>
[src]
impl<A> Arbitrary for (A,) where
A: Arbitrary,
[src]
A: Arbitrary,
fn arbitrary<GEN: Gen>(g: &mut GEN) -> (A,)
[src]
fn shrink(&self) -> Box<dyn Iterator<Item = (A,)>>
[src]
impl<A, B> Arbitrary for (A, B) where
A: Arbitrary,
B: Arbitrary,
[src]
A: Arbitrary,
B: Arbitrary,
fn arbitrary<GEN: Gen>(g: &mut GEN) -> (A, B)
[src]
fn shrink(&self) -> Box<dyn Iterator<Item = (A, B)>>
[src]
impl<A, B, C> Arbitrary for (A, B, C) where
A: Arbitrary,
B: Arbitrary,
C: Arbitrary,
[src]
A: Arbitrary,
B: Arbitrary,
C: Arbitrary,
fn arbitrary<GEN: Gen>(g: &mut GEN) -> (A, B, C)
[src]
fn shrink(&self) -> Box<dyn Iterator<Item = (A, B, C)>>
[src]
impl<A, B, C, D> Arbitrary for (A, B, C, D) where
A: Arbitrary,
B: Arbitrary,
C: Arbitrary,
D: Arbitrary,
[src]
A: Arbitrary,
B: Arbitrary,
C: Arbitrary,
D: Arbitrary,
fn arbitrary<GEN: Gen>(g: &mut GEN) -> (A, B, C, D)
[src]
fn shrink(&self) -> Box<dyn Iterator<Item = (A, B, C, D)>>
[src]
impl<A, B, C, D, E> Arbitrary for (A, B, C, D, E) where
A: Arbitrary,
B: Arbitrary,
C: Arbitrary,
D: Arbitrary,
E: Arbitrary,
[src]
A: Arbitrary,
B: Arbitrary,
C: Arbitrary,
D: Arbitrary,
E: Arbitrary,
fn arbitrary<GEN: Gen>(g: &mut GEN) -> (A, B, C, D, E)
[src]
fn shrink(&self) -> Box<dyn Iterator<Item = (A, B, C, D, E)>>
[src]
impl<A, B, C, D, E, F> Arbitrary for (A, B, C, D, E, F) where
A: Arbitrary,
B: Arbitrary,
C: Arbitrary,
D: Arbitrary,
E: Arbitrary,
F: Arbitrary,
[src]
A: Arbitrary,
B: Arbitrary,
C: Arbitrary,
D: Arbitrary,
E: Arbitrary,
F: Arbitrary,
fn arbitrary<GEN: Gen>(g: &mut GEN) -> (A, B, C, D, E, F)
[src]
fn shrink(&self) -> Box<dyn Iterator<Item = (A, B, C, D, E, F)>>
[src]
impl<A, B, C, D, E, F, G> Arbitrary for (A, B, C, D, E, F, G) where
A: Arbitrary,
B: Arbitrary,
C: Arbitrary,
D: Arbitrary,
E: Arbitrary,
F: Arbitrary,
G: Arbitrary,
[src]
A: Arbitrary,
B: Arbitrary,
C: Arbitrary,
D: Arbitrary,
E: Arbitrary,
F: Arbitrary,
G: Arbitrary,
fn arbitrary<GEN: Gen>(g: &mut GEN) -> (A, B, C, D, E, F, G)
[src]
fn shrink(&self) -> Box<dyn Iterator<Item = (A, B, C, D, E, F, G)>>
[src]
impl<A, B, C, D, E, F, G, H> Arbitrary for (A, B, C, D, E, F, G, H) where
A: Arbitrary,
B: Arbitrary,
C: Arbitrary,
D: Arbitrary,
E: Arbitrary,
F: Arbitrary,
G: Arbitrary,
H: Arbitrary,
[src]
A: Arbitrary,
B: Arbitrary,
C: Arbitrary,
D: Arbitrary,
E: Arbitrary,
F: Arbitrary,
G: Arbitrary,
H: Arbitrary,