pub trait RandomWith<D: Clone>: Sized {
// Required method
fn random_with(rng: impl CryptoRngCore, data: D) -> Self;
// Provided methods
fn random_n_with<Container: FromIterator<Self>>(
rng: impl CryptoRngCore,
size: usize,
data: D,
) -> Container { ... }
fn random_n_with_each<Container: FromIterator<Self>>(
rng: impl CryptoRngCore,
all_data: impl IntoExactSizeIterator<Item = D>,
) -> Container { ... }
}Expand description
A trait for getting a random instance of a type alongside some data.
Required Methods§
fn random_with(rng: impl CryptoRngCore, data: D) -> Self
Provided Methods§
fn random_n_with<Container: FromIterator<Self>>( rng: impl CryptoRngCore, size: usize, data: D, ) -> Container
fn random_n_with_each<Container: FromIterator<Self>>( rng: impl CryptoRngCore, all_data: impl IntoExactSizeIterator<Item = D>, ) -> Container
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".
Implementations on Foreign Types§
Source§impl<D: Clone, T: RandomWith<D>> RandomWith<Vec<D>> for Vec<T>
impl<D: Clone, T: RandomWith<D>> RandomWith<Vec<D>> for Vec<T>
Source§fn random_with(source: impl CryptoRngCore, data: Vec<D>) -> Self
fn random_with(source: impl CryptoRngCore, data: Vec<D>) -> Self
Generates a container with an element of T for each element in data,
yielding a container of [data.len()] length.
Source§fn random_n_with<Container: FromIterator<Self>>(
rng: impl CryptoRngCore,
size: usize,
data: Vec<D>,
) -> Container
fn random_n_with<Container: FromIterator<Self>>( rng: impl CryptoRngCore, size: usize, data: Vec<D>, ) -> Container
Generates size instances of T for each element in data.len(),
yielding a container of [data.len()][size] dimensions.