Struct proptest::strategy::Fuse [−][src]
Adaptor for Strategy
and ValueTree
which guards simplify()
and
complicate()
to avoid contract violations.
This can be used as an intermediate when the caller would otherwise need
its own separate state tracking, or as a workaround for a broken
ValueTree
implementation.
This wrapper specifically has the following effects:
-
Calling
complicate()
beforesimplify()
was ever called does nothing and returnsfalse
. -
Calling
simplify()
after it has returnedfalse
and no calls tocomplicate()
returnedtrue
does nothing and returnsfalse
. -
Calling
complicate()
after it has returnedfalse
and no calls tosimplify()
returnedtrue
does nothing and returnsfalse
.
There is also limited functionality to alter the internal state to assist in its usage as a state tracker.
Wrapping a Strategy
in Fuse
simply causes its ValueTree
to also be
wrapped in Fuse
.
While this is similar to std::iter::Fuse
, it is not exposed as a method
on Strategy
since the vast majority of proptest should never need this
functionality; it mainly concerns implementors of strategies.
Implementations
impl<T> Fuse<T>
[src]
impl<T: ValueTree> Fuse<T>
[src]
pub fn may_simplify(&self) -> bool
[src]
Return whether a call to simplify()
may be productive.
Formally, this is true if one of the following holds:
simplify()
has never been called.- The most recent call to
simplify()
returnedtrue
. complicate()
has been called more recently thansimplify()
and the last call returnedtrue
.
pub fn disallow_simplify(&mut self)
[src]
Disallow any further calls to simplify()
until a call to
complicate()
returns true
.
pub fn may_complicate(&self) -> bool
[src]
Return whether a call to complicate()
may be productive.
Formally, this is true if one of the following holds:
- The most recent call to
complicate()
returnedtrue
. simplify()
has been called more recently thancomplicate()
and the last call returnedtrue
.
pub fn disallow_complicate(&mut self)
[src]
Disallow any further calls to complicate()
until a call to
simplify()
returns true
.
pub fn freeze(&mut self)
[src]
Prevent any further shrinking operations from occurring.
Trait Implementations
impl<T: Clone> Clone for Fuse<T>
[src]
fn clone(&self) -> Fuse<T>
[src]
pub fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl<T: Copy> Copy for Fuse<T>
[src]
impl<T: Debug> Debug for Fuse<T>
[src]
impl<T: Strategy> Strategy for Fuse<T>
[src]
type Tree = Fuse<T::Tree>
The value tree generated by this Strategy
.
type Value = T::Value
The type of value used by functions under test generated by this Strategy. Read more
fn new_tree(&self, runner: &mut TestRunner) -> NewTree<Self>
[src]
fn prop_map<O: Debug, F: Fn(Self::Value) -> O>(self, fun: F) -> Map<Self, F> where
Self: Sized,
[src]
Self: Sized,
fn prop_map_into<O: Debug>(self) -> MapInto<Self, O> where
Self: Sized,
Self::Value: Into<O>,
[src]
Self: Sized,
Self::Value: Into<O>,
fn prop_perturb<O: Debug, F: Fn(Self::Value, TestRng) -> O>(
self,
fun: F
) -> Perturb<Self, F> where
Self: Sized,
[src]
self,
fun: F
) -> Perturb<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,
[src]
self,
fun: F
) -> Flatten<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,
[src]
self,
fun: F
) -> IndFlatten<Map<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,
[src]
self,
fun: F
) -> IndFlattenMap<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,
[src]
self,
whence: R,
fun: F
) -> Filter<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,
[src]
self,
whence: impl Into<Reason>,
fun: F
) -> FilterMap<Self, F> where
Self: Sized,
fn prop_union(self, other: Self) -> Union<Self> where
Self: Sized,
[src]
Self: Sized,
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,
[src]
self,
depth: u32,
desired_size: u32,
expected_branch_size: u32,
recurse: F
) -> Recursive<Self::Value, F> where
Self: Sized + 'static,
fn prop_shuffle(self) -> Shuffle<Self> where
Self: Sized,
Self::Value: Shuffleable,
[src]
Self: Sized,
Self::Value: Shuffleable,
fn boxed(self) -> BoxedStrategy<Self::Value> where
Self: Sized + 'static,
[src]
Self: Sized + 'static,
fn sboxed(self) -> SBoxedStrategy<Self::Value> where
Self: Sized + Send + Sync + 'static,
[src]
Self: Sized + Send + Sync + 'static,
fn no_shrink(self) -> NoShrink<Self> where
Self: Sized,
[src]
Self: Sized,
impl<T: ValueTree> ValueTree for Fuse<T>
[src]
Auto Trait Implementations
impl<T> Send for Fuse<T> where
T: Send,
[src]
T: Send,
impl<T> Sync for Fuse<T> where
T: Sync,
[src]
T: Sync,
impl<T> Unpin for Fuse<T> where
T: Unpin,
[src]
T: Unpin,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
pub fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,