pub struct Union<T: Strategy> { /* private fields */ }
Expand description
A Strategy
which picks from one of several delegate Stragegy
s.
See Strategy::prop_union()
.
Implementations
sourceimpl<T: Strategy> Union<T>
impl<T: Strategy> Union<T>
sourcepub fn new(options: impl IntoIterator<Item = T>) -> Self
pub fn new(options: impl IntoIterator<Item = T>) -> Self
Create a strategy which selects uniformly from the given delegate strategies.
When shrinking, after maximal simplification of the chosen element, the strategy will move to earlier options and continue simplification with those.
Panics
Panics if options
is empty.
sourcepub fn new_weighted(options: Vec<W<T>>) -> Self
pub fn new_weighted(options: Vec<W<T>>) -> Self
Create a strategy which selects from the given delegate strategies.
Each strategy is assigned a non-zero weight which determines how frequently that strategy is chosen. For example, a strategy with a weight of 2 will be chosen twice as frequently as one with a weight of 1.
Panics
Panics if options
is empty or any element has a weight of 0.
Panics if the sum of the weights overflows a u32
.
Trait Implementations
sourceimpl<T: Strategy> Strategy for Union<T>
impl<T: Strategy> Strategy for Union<T>
type Tree = UnionValueTree<T>
type Tree = UnionValueTree<T>
The value tree generated by this Strategy
.
type Value = <T as Strategy>::Value
type Value = <T as Strategy>::Value
The type of value used by functions under test generated by this Strategy. Read more
sourcefn new_tree(&self, runner: &mut TestRunner) -> NewTree<Self>
fn new_tree(&self, runner: &mut TestRunner) -> NewTree<Self>
Generate a new value tree from the given runner. Read more
sourcefn prop_map<O: Debug, F: Fn(Self::Value) -> O>(self, fun: F) -> Map<Self, F> where
Self: Sized,
fn prop_map<O: Debug, F: Fn(Self::Value) -> O>(self, fun: F) -> Map<Self, F> where
Self: Sized,
Returns a strategy which produces values transformed by the function
fun
. Read more
sourcefn prop_map_into<O: Debug>(self) -> MapInto<Self, O> where
Self: Sized,
Self::Value: Into<O>,
fn prop_map_into<O: Debug>(self) -> MapInto<Self, O> where
Self: Sized,
Self::Value: Into<O>,
Returns a strategy which produces values of type O
by transforming
Self
with Into<O>
. Read more
sourcefn prop_perturb<O: Debug, F: Fn(Self::Value, TestRng) -> O>(
self,
fun: F
) -> Perturb<Self, F> where
Self: Sized,
fn prop_perturb<O: Debug, F: Fn(Self::Value, TestRng) -> O>(
self,
fun: F
) -> Perturb<Self, F> where
Self: Sized,
Returns a strategy which produces values transformed by the function
fun
, which is additionally given a random number generator. Read more
sourcefn prop_flat_map<S: Strategy, F: Fn(Self::Value) -> S>(
self,
fun: F
) -> Flatten<Map<Self, F>> where
Self: Sized,
fn prop_flat_map<S: Strategy, F: Fn(Self::Value) -> S>(
self,
fun: F
) -> Flatten<Map<Self, F>> where
Self: Sized,
Maps values produced by this strategy into new strategies and picks values from those strategies. Read more
sourcefn prop_ind_flat_map<S: Strategy, F: Fn(Self::Value) -> S>(
self,
fun: F
) -> IndFlatten<Map<Self, F>> where
Self: Sized,
fn prop_ind_flat_map<S: Strategy, F: Fn(Self::Value) -> S>(
self,
fun: F
) -> IndFlatten<Map<Self, F>> where
Self: Sized,
Maps values produced by this strategy into new strategies and picks values from those strategies while considering the new strategies to be independent. Read more
sourcefn prop_ind_flat_map2<S: Strategy, F: Fn(Self::Value) -> S>(
self,
fun: F
) -> IndFlattenMap<Self, F> where
Self: Sized,
fn prop_ind_flat_map2<S: Strategy, F: Fn(Self::Value) -> S>(
self,
fun: F
) -> IndFlattenMap<Self, F> where
Self: Sized,
Similar to prop_ind_flat_map()
, but produces 2-tuples with the input
generated from self
in slot 0 and the derived strategy in slot 1. Read more
sourcefn prop_filter<R: Into<Reason>, F: Fn(&Self::Value) -> bool>(
self,
whence: R,
fun: F
) -> Filter<Self, F> where
Self: Sized,
fn prop_filter<R: Into<Reason>, F: Fn(&Self::Value) -> bool>(
self,
whence: R,
fun: F
) -> Filter<Self, F> where
Self: Sized,
Returns a strategy which only produces values accepted by fun
. Read more
sourcefn prop_filter_map<F: Fn(Self::Value) -> Option<O>, O: Debug>(
self,
whence: impl Into<Reason>,
fun: F
) -> FilterMap<Self, F> where
Self: Sized,
fn prop_filter_map<F: Fn(Self::Value) -> Option<O>, O: Debug>(
self,
whence: impl Into<Reason>,
fun: F
) -> FilterMap<Self, F> where
Self: Sized,
Returns a strategy which only produces transformed values where fun
returns Some(value)
and rejects those where fun
returns None
. Read more
sourcefn prop_union(self, other: Self) -> Union<Self> where
Self: Sized,
fn prop_union(self, other: Self) -> Union<Self> where
Self: Sized,
Returns a strategy which picks uniformly from self
and other
. Read more
sourcefn prop_recursive<R: Strategy<Value = Self::Value> + 'static, F: Fn(BoxedStrategy<Self::Value>) -> R>(
self,
depth: u32,
desired_size: u32,
expected_branch_size: u32,
recurse: F
) -> Recursive<Self::Value, F> where
Self: Sized + 'static,
fn prop_recursive<R: Strategy<Value = Self::Value> + 'static, F: Fn(BoxedStrategy<Self::Value>) -> R>(
self,
depth: u32,
desired_size: u32,
expected_branch_size: u32,
recurse: F
) -> Recursive<Self::Value, F> where
Self: Sized + 'static,
Generate a recursive structure with self
items as leaves. Read more
sourcefn prop_shuffle(self) -> Shuffle<Self> where
Self: Sized,
Self::Value: Shuffleable,
fn prop_shuffle(self) -> Shuffle<Self> where
Self: Sized,
Self::Value: Shuffleable,
Shuffle the contents of the values produced by this strategy. Read more
sourcefn boxed(self) -> BoxedStrategy<Self::Value> where
Self: Sized + 'static,
fn boxed(self) -> BoxedStrategy<Self::Value> where
Self: Sized + 'static,
Erases the type of this Strategy
so it can be passed around as a
simple trait object. Read more
Auto Trait Implementations
impl<T> RefUnwindSafe for Union<T> where
T: RefUnwindSafe,
impl<T> Send for Union<T> where
T: Send + Sync,
impl<T> Sync for Union<T> where
T: Send + Sync,
impl<T> Unpin for Union<T>
impl<T> UnwindSafe for Union<T> where
T: RefUnwindSafe,
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more