1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
use crate::faker::name::raw::*; use crate::locales::Data; use crate::{Dummy, Fake}; use rand::seq::SliceRandom; use rand::Rng; impl<L: Data> Dummy<FirstName<L>> for String { fn dummy_with_rng<R: Rng + ?Sized>(_: &FirstName<L>, rng: &mut R) -> Self { let s = *L::NAME_FIRST_NAME.choose(rng).unwrap(); s.into() } } impl<L: Data> Dummy<FirstName<L>> for &str { fn dummy_with_rng<R: Rng + ?Sized>(_: &FirstName<L>, rng: &mut R) -> Self { *L::NAME_FIRST_NAME.choose(rng).unwrap() } } impl<L: Data> Dummy<LastName<L>> for String { fn dummy_with_rng<R: Rng + ?Sized>(_: &LastName<L>, rng: &mut R) -> Self { let s = *L::NAME_LAST_NAME.choose(rng).unwrap(); s.into() } } impl<L: Data> Dummy<LastName<L>> for &str { fn dummy_with_rng<R: Rng + ?Sized>(_: &LastName<L>, rng: &mut R) -> Self { *L::NAME_LAST_NAME.choose(rng).unwrap() } } impl<L: Data> Dummy<Title<L>> for String { fn dummy_with_rng<R: Rng + ?Sized>(_: &Title<L>, rng: &mut R) -> Self { let s = *L::NAME_TITLE.choose(rng).unwrap(); s.into() } } impl<L: Data> Dummy<Title<L>> for &str { fn dummy_with_rng<R: Rng + ?Sized>(_: &Title<L>, rng: &mut R) -> Self { *L::NAME_TITLE.choose(rng).unwrap() } } impl<L: Data> Dummy<Suffix<L>> for String { fn dummy_with_rng<R: Rng + ?Sized>(_: &Suffix<L>, rng: &mut R) -> Self { let s = *L::NAME_SUFFIX.choose(rng).unwrap(); s.into() } } impl<L: Data> Dummy<Suffix<L>> for &str { fn dummy_with_rng<R: Rng + ?Sized>(_: &Suffix<L>, rng: &mut R) -> Self { *L::NAME_SUFFIX.choose(rng).unwrap() } } impl<L: Data + Copy> Dummy<Name<L>> for String { fn dummy_with_rng<R: Rng + ?Sized>(c: &Name<L>, rng: &mut R) -> Self { L::NAME_TPL .replace("{FirstName}", FirstName(c.0).fake_with_rng::<&str, _>(rng)) .replace("{LastName}", LastName(c.0).fake_with_rng::<&str, _>(rng)) } } impl<L: Data + Copy> Dummy<NameWithTitle<L>> for String { fn dummy_with_rng<R: Rng + ?Sized>(c: &NameWithTitle<L>, rng: &mut R) -> Self { L::NAME_WITH_TITLE_TPL .replace("{Title}", Title(c.0).fake_with_rng::<&str, _>(rng)) .replace("{FirstName}", FirstName(c.0).fake_with_rng::<&str, _>(rng)) .replace("{LastName}", LastName(c.0).fake_with_rng::<&str, _>(rng)) } }