rpawomaster 0.2.2

A secure password manager written in Rust
Documentation
use crate::passgen::{self, Capitalization, evaluate_and_display_password_strength};

pub fn generate_random(
    length: usize,
    no_uppercase: bool,
    no_lowercase: bool,
    no_numbers: bool,
    no_special: bool,
    url_safe: bool,
    avoid_confusion: bool,
) -> Result<(), String> {
    let options = passgen::PasswordOptions {
        length,
        include_uppercase: !no_uppercase,
        include_lowercase: !no_lowercase,
        include_numbers: !no_numbers,
        include_special: !no_special,
        url_safe,
        avoid_confusion,
    };
    let password = passgen::generate_password(&options)
        .map_err(|e| format!("Failed to generate password: {}", e))?;
    println!("Generated random password: {}", password);
    evaluate_and_display_password_strength(&password)?;
    Ok(())
}

pub fn generate_memorable(
    words: usize,
    separator: char,
    include_numbers: bool,
    capitalization: Capitalization,
) -> Result<(), String> {
    let options = passgen::MemorablePasswordOptions {
        word_count: words,
        separator,
        include_numbers,
        capitalization,
    };
    let password = passgen::generate_memorable_password(&options)
        .map_err(|e| format!("Failed to generate memorable password: {}", e))?;
    println!("Generated memorable password: {}", password);
    evaluate_and_display_password_strength(&password)?;
    Ok(())
}