passcheck 0.2.0

A flexible rule-base password validation library
Documentation
# 🔐 passcheck


**passcheck** is a flexible and lightweight password validation crate for Rust.  
It allows you to define custom rules for checking password strength and structure — use only what you need!

---

## 🚀 Features


- ✅ Rule-based validation system  
- ✅ Add only the checks you want: length, uppercase/lowercase, number, special char, etc.  
- ✅ Supports custom error messages per rule via `Option<&str>`  
- ✅ Lightweight and dependency-free  
- ✅ Easy to use and extend with a fluent API  

---

## 📦 Installation


Add this to your `Cargo.toml`:

```toml
[dependencies]
passcheck = "0.2.0"
```
# 🎯 Usage Example 

```rust 
use passcheck::PasswordChecker;

fn main() {
    let checker = PasswordChecker::new()
        .min_length(8, None)  // Use default error message with None OR use Some(str) for use custom message
        .require_upper_lower(None)
        .require_number(Some("Password must include at least one digit")) // Custom message
        .require_special_char(None);

    let password = "Ali@123";

    match checker.validate(password) {
        Ok(_) => println!("✅ Strong password!"),
        Err(errors) => {
            println!("❌ Invalid password:");
            for err in errors {
                println!("  - {}", err);
            }
        }
    }
}
```
---
# 🔧 Available Rules 

min_length(n, Option<&str>) → Requires password to be at least n characters

require_upper_lower(Option<&str>) → Requires at least one uppercase and one lowercase letter

require_number(Option<&str>) → Requires at least one digit

require_special_char(Option<&str>) → Requires at least one special character

---
📄 License
MIT
---
💻 Author
Made with ❤ + ☕ by Ali