pub trait ValueGenerator: Sized {
type Output: 'static;
// Required method
fn generate<D>(&self, driver: &mut D) -> Option<Self::Output>
where D: Driver;
// Provided methods
fn mutate<D>(&self, driver: &mut D, value: &mut Self::Output) -> Option<()>
where D: Driver { ... }
fn driver_cache<D>(&self, driver: &mut D, value: Self::Output)
where D: Driver { ... }
fn map_gen<F, T>(self, map: F) -> MapGenerator<Self, F>
where F: Fn(Self::Output) -> T { ... }
fn and_then_gen<F, T>(self, and_then: F) -> AndThenGenerator<Self, F>
where F: Fn(Self::Output) -> T,
T: ValueGenerator { ... }
fn filter_gen<F>(self, filter: F) -> FilterGenerator<Self, F>
where F: Fn(&Self::Output) -> bool { ... }
fn filter_map_gen<F, T>(self, filter_map: F) -> FilterMapGenerator<Self, F>
where F: Fn(Self::Output) -> Option<T> { ... }
}Expand description
Generate a value with a parameterized generator
Required Associated Types§
Required Methods§
Provided Methods§
Sourcefn mutate<D>(&self, driver: &mut D, value: &mut Self::Output) -> Option<()>where
D: Driver,
fn mutate<D>(&self, driver: &mut D, value: &mut Self::Output) -> Option<()>where
D: Driver,
Mutates an existing value with the given driver
fn driver_cache<D>(&self, driver: &mut D, value: Self::Output)where
D: Driver,
Sourcefn map_gen<F, T>(self, map: F) -> MapGenerator<Self, F>
fn map_gen<F, T>(self, map: F) -> MapGenerator<Self, F>
Map the value of a generator
Sourcefn and_then_gen<F, T>(self, and_then: F) -> AndThenGenerator<Self, F>
fn and_then_gen<F, T>(self, and_then: F) -> AndThenGenerator<Self, F>
Map the value of a generator with a new generator
Sourcefn filter_gen<F>(self, filter: F) -> FilterGenerator<Self, F>
fn filter_gen<F>(self, filter: F) -> FilterGenerator<Self, F>
Filter the value of a generator
Sourcefn filter_map_gen<F, T>(self, filter_map: F) -> FilterMapGenerator<Self, F>
fn filter_map_gen<F, T>(self, filter_map: F) -> FilterMapGenerator<Self, F>
Filter the value of a generator and map it to something else
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.