Module proptest::result[][src]

Strategies for combining delegate strategies into std::Results.

That is, the strategies here are for producing Ok and Err cases. To simply adapt a strategy producing T into Result<T, something> which is always Ok, you can do something like base_strategy.prop_map(Ok) to simply wrap the generated values.

Note that there are two nearly identical APIs for doing this, termed "maybe ok" and "maybe err". The difference between the two is in how they shrink; "maybe ok" treats Ok as the special case and shrinks to Err; conversely, "maybe err" treats Err as the special case and shrinks to Ok. Which to use largely depends on the code being tested; if the code typically handles errors by immediately bailing out and doing nothing else, "maybe ok" is likely more suitable, as shrinking will cause the code to take simpler paths. On the other hand, functions that need to make a complicated or fragile "back out" process on error are better tested with "maybe err" since the success case results in an easier to understand code path.

Re-exports

pub use crate::option::prob;
pub use crate::option::Probability;

Structs

MaybeErr

Strategy which generates Results using Ok and Err values from two delegate strategies.

MaybeErrValueTree

ValueTree type corresponding to MaybeErr.

MaybeOk

Strategy which generates Results using Ok and Err values from two delegate strategies.

MaybeOkValueTree

ValueTree type corresponding to MaybeOk.

Functions

maybe_err

Create a strategy for Results where Ok values are taken from t and Err values are taken from e.

maybe_err_weighted

Create a strategy for Results where Ok values are taken from t and Err values are taken from e.

maybe_ok

Create a strategy for Results where Ok values are taken from t and Err values are taken from e.

maybe_ok_weighted

Create a strategy for Results where Ok values are taken from t and Err values are taken from e.