fake 5.1.0

An easy to use library and command line for generating fake data like name, number, address, lorem, dates, etc.
Documentation
use crate::{Dummy, Fake, Faker};
use rand::RngExt;

pub struct Decimal;
pub struct NegativeDecimal;
pub struct PositiveDecimal;
pub struct NoDecimalPoints;

impl Dummy<Faker> for rust_decimal::Decimal {
    fn dummy_with_rng<R: RngExt + ?Sized>(_: &Faker, rng: &mut R) -> Self {
        rust_decimal::Decimal::from_parts(
            Faker.fake_with_rng(rng),
            Faker.fake_with_rng(rng),
            Faker.fake_with_rng(rng),
            Faker.fake_with_rng(rng),
            (0..=rust_decimal::Decimal::MAX_SCALE).fake_with_rng(rng),
        )
    }
}

impl Dummy<Decimal> for rust_decimal::Decimal {
    fn dummy_with_rng<R: RngExt + ?Sized>(_: &Decimal, rng: &mut R) -> Self {
        Faker.fake_with_rng(rng)
    }
}

impl Dummy<NegativeDecimal> for rust_decimal::Decimal {
    fn dummy_with_rng<R: RngExt + ?Sized>(_: &NegativeDecimal, rng: &mut R) -> Self {
        rust_decimal::Decimal::from_parts(
            Faker.fake_with_rng(rng),
            Faker.fake_with_rng(rng),
            Faker.fake_with_rng(rng),
            true,
            (0..=rust_decimal::Decimal::MAX_SCALE).fake_with_rng(rng),
        )
    }
}

impl Dummy<PositiveDecimal> for rust_decimal::Decimal {
    fn dummy_with_rng<R: RngExt + ?Sized>(_: &PositiveDecimal, rng: &mut R) -> Self {
        rust_decimal::Decimal::from_parts(
            Faker.fake_with_rng(rng),
            Faker.fake_with_rng(rng),
            Faker.fake_with_rng(rng),
            false,
            (0..=rust_decimal::Decimal::MAX_SCALE).fake_with_rng(rng),
        )
    }
}

impl Dummy<NoDecimalPoints> for rust_decimal::Decimal {
    fn dummy_with_rng<R: RngExt + ?Sized>(_: &NoDecimalPoints, rng: &mut R) -> Self {
        let mut decimal: rust_decimal::Decimal = Faker.fake_with_rng(rng);
        decimal.set_scale(0).expect("failed to set scale");
        decimal
    }
}