fake 0.4.0

A library for generating fake data in Rust.
Documentation

Fake

Build Status Latest Version

A Rust library for generating fake data. Currently only works in Rust nightly.

##Installation Add fake to your Cargo.toml

[dependencies]
fake = "*"

Usage

// Use macro style
#[macro_use]
extern crate fake;

fake!(Internet.free_email);
fake!(Company.name);
fake!(Name.name);
fake!(zh_tw; Name.name)

// Use function call style
use fake::faker::*;

Faker::free_email();

// In case multiple candidates available
<Faker as Company>::name();
<Faker as Name>::name();

// Switch locales
use fake::locales::zh_tw;
println!("{}", <zh_tw::Faker as Name>::name());

Lorem

println!("{:?}", fake!(Lorem.word));
println!("{:?}", fake!(Lorem.words(10)));
println!("{:?}", fake!(Lorem.sentence(4, 6)));
println!("{:?}", fake!(Lorem.sentences(10)));
println!("{:?}", fake!(Lorem.paragraph(7, 3)));
println!("{:?}", fake!(Lorem.paragraphs(3)));

Name

println!("{:?}", fake!(Name.first_name));
println!("{:?}", fake!(Name.last_name));
println!("{:?}", fake!(Name.name));
println!("{:?}", fake!(Name.name_with_middle));
println!("{:?}", fake!(Name.title_descriptor));
println!("{:?}", fake!(Name.title_level));
println!("{:?}", fake!(Name.title_job));
println!("{:?}", fake!(Name.title));

println!("{}", fake!(zh_tw; Name.first_name));
println!("{}", fake!(zh_tw; Name.last_name));
println!("{}", fake!(zh_tw; Name.name));

Number

println!("{:?}", fake!(Number.digit));
println!("{:?}", fake!(Number.number(10)));
println!("{:?}", fake!(Number.between(5, 10)));
println!("{:?}", fake!(Number.between(5.0_f32, 10.0_f32)));

Boolean

println!("{:?}", fake!(Boolean.boolean));

Internet

println!("{:?}", fake!(Internet.free_email_provider));
println!("{:?}", fake!(Internet.domain_suffix));
println!("{:?}", fake!(Internet.user_name));
println!("{:?}", fake!(Internet.free_email));
println!("{:?}", fake!(Internet.safe_email));

Company

println!("{:?}", fake!(Company.suffix));
println!("{:?}", fake!(Company.name));
println!("{:?}", fake!(Company.buzzword));
println!("{:?}", fake!(Company.catch_phase));
println!("{:?}", fake!(Company.bs));
println!("{:?}", fake!(Company.profession));
println!("{:?}", fake!(Company.industry));

Address

println!("{:?}", fake!(Address.time_zone));
println!("{:?}", fake!(Address.city_prefix));
println!("{:?}", fake!(Address.city_suffix));
println!("{:?}", fake!(Address.street_suffix));
println!("{:?}", fake!(Address.state));
println!("{:?}", fake!(Address.state_abbr));
println!("{:?}", fake!(Address.city));
println!("{:?}", fake!(Address.street_name));
println!("{:?}", fake!(Address.building_number));
println!("{:?}", fake!(Address.street_address));
println!("{:?}", fake!(Address.secondary_address));
println!("{:?}", fake!(Address.zip));
println!("{:?}", fake!(Address.postcode));
println!("{:?}", fake!(Address.latitude));
println!("{:?}", fake!(Address.longitude));

Phone Number

println!("{:?}", fake!(PhoneNumber.phone_number));
//N => [1..9], # => [0..9]
println!("{:?}", fake!(PhoneNumber.phone_number_with_format("N#######")));
println!("{:?}", fake!(PhoneNumber.cell_number));

Contributing

  1. Fork the repo.
  2. Add a test for your change.
  3. Make the test and clippy lint pass. cargo test --features "dev"
  4. Push to your fork and submit a pull request.