[][src]Trait un_algebra::tests::arbitrary::functor::ArbitraryF2

pub trait ArbitraryF2<A, B>: Debug where
    A: Debug,
    B: Debug
{ type Parameters: Default; fn lift2_with<AS, BS>(
        fst: AS,
        snd: BS,
        args: Self::Parameters
    ) -> BoxedStrategy<Self>
    where
        AS: Strategy<Value = A> + 'static,
        BS: Strategy<Value = B> + 'static
; fn lift2<AS, BS>(fst: AS, snd: BS) -> BoxedStrategy<Self>
    where
        AS: Strategy<Value = A> + 'static,
        BS: Strategy<Value = B> + 'static
, { ... } }

ArbitraryF2 lets you lift Strategy to binary type constructors such as Result, HashMap.

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

Associated Types

type Parameters: Default

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

Loading content...

Required methods

fn lift2_with<AS, BS>(
    fst: AS,
    snd: BS,
    args: Self::Parameters
) -> BoxedStrategy<Self> where
    AS: Strategy<Value = A> + 'static,
    BS: Strategy<Value = B> + 'static, 

Lifts two given strategies to a new Strategy for the (presumably) bigger type. This is useful for lifting a Strategy for Type1 and one for Type2 to a container such as HashMap<Type1, Type2>. The composite strategy is passed the arguments given in args.

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

Loading content...

Provided methods

fn lift2<AS, BS>(fst: AS, snd: BS) -> BoxedStrategy<Self> where
    AS: Strategy<Value = A> + 'static,
    BS: Strategy<Value = B> + 'static, 

Lifts two given strategies to a new Strategy for the (presumably) bigger type. This is useful for lifting a Strategy for Type1 and one for Type2 to a container such as HashMap<Type1, Type2>.

Calling this for the type X is the equivalent of using X::lift2_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.

Loading content...

Implementations on Foreign Types

impl<A, B> ArbitraryF2<A, B> for Result<A, B> where
    A: Debug,
    B: Debug
[src]

type Parameters = Probability

fn lift2<AS, BS>(fst: AS, snd: BS) -> BoxedStrategy<Self> where
    AS: Strategy<Value = A> + 'static,
    BS: Strategy<Value = B> + 'static, 
[src]

impl<A, B> ArbitraryF2<A, B> for IntoIter<A, B> where
    A: 'static + Eq + Hash + Debug,
    B: 'static + Debug
[src]

type Parameters = SizeRange

fn lift2<AS, BS>(fst: AS, snd: BS) -> BoxedStrategy<Self> where
    AS: Strategy<Value = A> + 'static,
    BS: Strategy<Value = B> + 'static, 
[src]

impl<T, A, B> ArbitraryF2<A, B> for Chain<A, B> where
    A: Iterator<Item = T> + Debug,
    B: Iterator<Item = T> + Debug
[src]

type Parameters = ()

fn lift2<AS, BS>(fst: AS, snd: BS) -> BoxedStrategy<Self> where
    AS: Strategy<Value = A> + 'static,
    BS: Strategy<Value = B> + 'static, 
[src]

impl<A, B> ArbitraryF2<A, B> for IntoIter<A, B> where
    A: 'static + Ord + Debug,
    B: 'static + Debug
[src]

type Parameters = SizeRange

fn lift2<AS, BS>(fst: AS, snd: BS) -> BoxedStrategy<Self> where
    AS: Strategy<Value = A> + 'static,
    BS: Strategy<Value = B> + 'static, 
[src]

impl<A, B> ArbitraryF2<A, B> for BTreeMap<A, B> where
    A: Ord + Debug,
    B: Debug
[src]

type Parameters = SizeRange

fn lift2<AS, BS>(fst: AS, snd: BS) -> BoxedStrategy<Self> where
    AS: Strategy<Value = A> + 'static,
    BS: Strategy<Value = B> + 'static, 
[src]

impl<A, B> ArbitraryF2<A, B> for HashMap<A, B, RandomState> where
    A: Eq + Hash + Debug,
    B: Debug
[src]

type Parameters = SizeRange

fn lift2<AS, BS>(fst: AS, snd: BS) -> BoxedStrategy<Self> where
    AS: Strategy<Value = A> + 'static,
    BS: Strategy<Value = B> + 'static, 
[src]

impl<A, B> ArbitraryF2<A, B> for Zip<A, B> where
    A: Iterator + Debug,
    B: Iterator + Debug
[src]

type Parameters = ()

fn lift2<AS, BS>(fst: AS, snd: BS) -> BoxedStrategy<Self> where
    AS: Strategy<Value = A> + 'static,
    BS: Strategy<Value = B> + 'static, 
[src]

Loading content...

Implementors

Loading content...