Expand description
Provide data structure a way to generate fake values.
The opposite of Fake
.
Faker
can be used as a generic T
for Dummy<T>
to generate a
default fake value.
Dummy
is similar to From
trait, while Fake
is similar to
Into
trait. Except in this case Fake
cannot be implemented.
use fake::{Dummy, Fake, Faker};
use rand::Rng;
use rand::seq::SliceRandom;
struct Name;
impl Dummy<Name> for &'static str {
fn dummy_with_rng<R: Rng + ?Sized>(_: &Name, rng: &mut R) -> &'static str {
const NAMES: &[&str] = &["John Doe", "Jane Doe"];
NAMES.choose(rng).unwrap()
}
}
let name: &str = Name.fake();
assert!(name == "John Doe" || name == "Jane Doe");
The trait can be used with #[derive]
if all of the type’s fields
implement Fake
. See [Dummy
][macro@Dummy] for more.
Generate a dummy value for a given type using a random number
generator.
Generate a dummy value for a type.
This can be left as a blanket implemented most of the time since it
uses Dummy::dummy_with_rng
under the hood.
impl<T0, A: Dummy<T0>, T1, B: Dummy<T1>, T2, C: Dummy<T2>, T3, D: Dummy<T3>> Dummy<(T0, T1, T2, T3)> for (A, B, C, D)
impl<T0, A: Dummy<T0>, T1, B: Dummy<T1>, T2, C: Dummy<T2>, T3, D: Dummy<T3>, T4, E: Dummy<T4>> Dummy<(T0, T1, T2, T3, T4)> for (A, B, C, D, E)
impl<T0, A: Dummy<T0>, T1, B: Dummy<T1>, T2, C: Dummy<T2>, T3, D: Dummy<T3>, T4, E: Dummy<T4>, T5, F: Dummy<T5>> Dummy<(T0, T1, T2, T3, T4, T5)> for (A, B, C, D, E, F)
impl<T0, A: Dummy<T0>, T1, B: Dummy<T1>, T2, C: Dummy<T2>, T3, D: Dummy<T3>, T4, E: Dummy<T4>, T5, F: Dummy<T5>, T6, G: Dummy<T6>> Dummy<(T0, T1, T2, T3, T4, T5, T6)> for (A, B, C, D, E, F, G)
impl<T0, A: Dummy<T0>, T1, B: Dummy<T1>, T2, C: Dummy<T2>, T3, D: Dummy<T3>, T4, E: Dummy<T4>, T5, F: Dummy<T5>, T6, G: Dummy<T6>, T7, H: Dummy<T7>> Dummy<(T0, T1, T2, T3, T4, T5, T6, T7)> for (A, B, C, D, E, F, G, H)
impl<T0, A: Dummy<T0>, T1, B: Dummy<T1>, T2, C: Dummy<T2>, T3, D: Dummy<T3>, T4, E: Dummy<T4>, T5, F: Dummy<T5>, T6, G: Dummy<T6>, T7, H: Dummy<T7>, T8, I: Dummy<T8>> Dummy<(T0, T1, T2, T3, T4, T5, T6, T7, T8)> for (A, B, C, D, E, F, G, H, I)
impl<T0, A: Dummy<T0>, T1, B: Dummy<T1>, T2, C: Dummy<T2>, T3, D: Dummy<T3>, T4, E: Dummy<T4>, T5, F: Dummy<T5>, T6, G: Dummy<T6>, T7, H: Dummy<T7>, T8, I: Dummy<T8>, T9, J: Dummy<T9>> Dummy<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> for (A, B, C, D, E, F, G, H, I, J)
impl<T0, A: Dummy<T0>, T1, B: Dummy<T1>, T2, C: Dummy<T2>, T3, D: Dummy<T3>, T4, E: Dummy<T4>, T5, F: Dummy<T5>, T6, G: Dummy<T6>, T7, H: Dummy<T7>, T8, I: Dummy<T8>, T9, J: Dummy<T9>, T10, K: Dummy<T10>> Dummy<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> for (A, B, C, D, E, F, G, H, I, J, K)
impl<T0, A: Dummy<T0>, T1, B: Dummy<T1>, T2, C: Dummy<T2>, T3, D: Dummy<T3>, T4, E: Dummy<T4>, T5, F: Dummy<T5>, T6, G: Dummy<T6>, T7, H: Dummy<T7>, T8, I: Dummy<T8>, T9, J: Dummy<T9>, T10, K: Dummy<T10>, T11, L: Dummy<T11>> Dummy<(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> for (A, B, C, D, E, F, G, H, I, J, K, L)