pub struct MaybeOk<T, E>(/* private fields */)
where
T: Strategy,
E: Strategy;
Expand description
Strategy which generates Result
s using Ok
and Err
values from two
delegate strategies.
Shrinks to Err
.
Trait Implementations§
Source§impl<T, E> Strategy for MaybeOk<T, E>
impl<T, E> Strategy for MaybeOk<T, E>
Source§type Tree = MaybeOkValueTree<T, E>
type Tree = MaybeOkValueTree<T, E>
The value tree generated by this
Strategy
.Source§type Value = Result<<T as Strategy>::Value, <E as Strategy>::Value>
type Value = Result<<T as Strategy>::Value, <E as Strategy>::Value>
The type of value used by functions under test generated by this Strategy. Read more
Source§fn 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
Source§fn 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 moreSource§fn prop_map_into<O: Debug>(self) -> MapInto<Self, O>
fn prop_map_into<O: Debug>(self) -> MapInto<Self, O>
Source§fn 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 moreSource§fn 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
Source§fn 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
Source§fn 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 moreSource§fn 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 moreSource§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,
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 moreSource§fn prop_union(self, other: Self) -> Union<Self>where
Self: Sized,
fn prop_union(self, other: Self) -> Union<Self>where
Self: Sized,
Source§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,
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 moreSource§fn 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 moreAuto Trait Implementations§
impl<T, E> Freeze for MaybeOk<T, E>
impl<T, E> RefUnwindSafe for MaybeOk<T, E>where
E: RefUnwindSafe,
T: RefUnwindSafe,
<T as Strategy>::Value: RefUnwindSafe,
<E as Strategy>::Value: RefUnwindSafe,
impl<T, E> Send for MaybeOk<T, E>
impl<T, E> Sync for MaybeOk<T, E>
impl<T, E> Unpin for MaybeOk<T, E>
impl<T, E> UnwindSafe for MaybeOk<T, E>where
E: RefUnwindSafe,
T: RefUnwindSafe,
<T as Strategy>::Value: RefUnwindSafe,
<E as Strategy>::Value: RefUnwindSafe,
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 32 bytes