# HubWorld
A Rust library for generating random data: UUIDs, names, passwords, and credit cards.
## Features
- 🔐 **UUID Generation** - Generate random UUID v4
- 👤 **Name Generation** - Generate random first names, last names, and full names
- 🔑 **Password Generation** - Generate secure random passwords with customizable length
- 💳 **Credit Card Generation** - Generate valid (Luhn) credit card numbers by brand or random
## Installation
Add this to your `Cargo.toml`:
```toml
[dependencies]
hubworld = "0.1.0"
```
## Usage
### UUID Generation
```rust
use hubworld::generate_uuid;
let id = generate_uuid();
println!("Generated UUID: {}", id);
```
### Name Generation
```rust
use hubworld::{generate_first_name, generate_last_name, generate_full_name};
let first_name = generate_first_name();
let last_name = generate_last_name();
let full_name = generate_full_name();
println!("First: {}, Last: {}, Full: {}", first_name, last_name, full_name);
```
### Password Generation
```rust
use hubworld::{generate_password, password::generate_password_with_length};
// Default length (16 characters)
let password = generate_password();
// Custom length
let long_password = generate_password_with_length(32);
```
### Credit Card Generation
```rust
use hubworld::{
generate_credit_card,
generate_credit_card_for_brand,
generate_credit_card_for_brand_name,
CardBrand
};
// Random brand (Visa, Mastercard, Amex, Discover)
let random_card = generate_credit_card();
// Specific brand
let visa = generate_credit_card_for_brand(CardBrand::Visa);
let mastercard = generate_credit_card_for_brand(CardBrand::Mastercard);
let amex = generate_credit_card_for_brand(CardBrand::AmericanExpress);
let discover = generate_credit_card_for_brand(CardBrand::Discover);
// Brand name as string
let union_pay = generate_credit_card_for_brand_name("UnionPay");
let diners = generate_credit_card_for_brand_name("Diners Club International");
let verve = generate_credit_card_for_brand_name("Verve (payment cards)");
```
## Contribuindo
Contribuições são muito bem-vindas! Veja o arquivo [CONTRIBUTING.md](CONTRIBUTING.md) para mais detalhes.
## License
Este projeto é open source e está licenciado sob a [MIT license](LICENSE-MIT).