fpas 0.5.3

fpas is command line software helps you create password from some text
Documentation
use clap::ValueEnum;

use super::{byte_mode, chain_mode, normal_mode};
#[derive(Clone, Debug, Default, ValueEnum, PartialEq)]
pub enum Mode {
    #[default]
    N,
    Normal,
    B,
    Byte,
}

pub fn process(msg: String, mode: Mode, looping: u32, chain: bool) -> String {
    let mut msg = msg;
    let callback = match mode {
        Mode::N | Mode::Normal => {
            msg = normal_mode(msg);
            if chain {
                |msg| chain_mode(normal_mode, msg)
            } else {
                |msg| normal_mode(msg)
            }
        }
        Mode::B | Mode::Byte => {
            msg = byte_mode(msg);
            if chain {
                |msg| chain_mode(byte_mode, msg)
            } else {
                |msg| byte_mode(msg)
            }
        }
    };
    for _ in 1..looping {
        msg = callback(msg);
    }
    msg
}