Trait ArbitraryF1

trait ArbitraryF1<A: fmt::Debug>: fmt::Debug + Sized

ArbitraryF1 lets you lift a Strategy to unary type constructors such as Box, Vec, and Option.

The trait corresponds to Haskell QuickCheck's Arbitrary1 type class.

Associated Types

type Parameters: TraitBound { trait_: Path { path: "Default", id: Id(34), args: None }, generic_params: [], modifier: None }

The type of parameters that lift1_with accepts for configuration of the lifted and generated Strategy. Parameters must implement Default.

Required Methods

fn lift1_with<AS>(base: AS, args: <Self as >::Parameters) -> BoxedStrategy<Self>
where
    AS: Strategy<Value = A> + 'static

Lifts a given Strategy to a new Strategy for the (presumably) bigger type. This is useful for lifting a Strategy for SomeType to a container such as Vec of SomeType. The composite strategy is passed the arguments given in args.

If you wish to use the default() arguments, use lift1 instead.

Provided Methods

fn lift1<AS>(base: AS) -> BoxedStrategy<Self>
where
    AS: Strategy<Value = A> + 'static

Lifts a given Strategy to a new Strategy for the (presumably) bigger type. This is useful for lifting a Strategy for SomeType to a container such as Vec<SomeType>.

Calling this for the type X is the equivalent of using X::lift1_with(base, Default::default()).

This method is defined in the trait for optimization for the default if you want to do that. It is a logic error to not preserve the semantics when overriding.

Implementors