# aegis-password-generator

A secure, flexible, and highly configurable library for generating strong passwords. This crate is a core component of the Aegis project, designed to be simple, safe, and easy to integrate into any Rust application.

Features
Configurable Length: Generate passwords of any specified length.

Customizable Character Sets: Include or exclude uppercase, lowercase, numbers, and symbols.

Strict Requirements: Ensure the generated password contains at least one character from each specified type.

Battle-tested: Comprehensive tests ensure the integrity and security of the generated passwords.

Installation
To use the latest version of the package, run `cargo add aegis-password-generator`

Usage
Here is a simple example of how to use the library to generate a password.

```rust
use aegis_password_generator::types::PasswordConfig;

fn main() {
  // Configure a password with a length of 16,
  // including all character types.
  let config = PasswordConfig::default()
    .with_length(16)
    .with_uppercase(true)
    .with_lowercase(true)
    .with_numbers(true)
    .with_symbols(true);

  match config.generate() {
    Ok(password) => {
      println!("Generated password: {}", password);
    },
    Err(e) => {
      eprintln!("Error generating password: {}", e);
    }
  }
}
```

Documentation
For full API documentation, please visit the docs.rs page.

License
This project is licensed under either of the following licenses, at your option:

Apache License, Version 2.0 (LICENSE-APACHE)

MIT license (LICENSE-MIT)
