use clap::Parser;
use crate::enums::template::Template;
#[derive(Parser, Debug)]
#[command(author, version, long_about)]
pub struct CliArguments {
#[arg(short, long)]
pub output: Option<String>,
#[arg(short, long, value_enum)]
pub template: Template,
#[arg(long)]
pub template_version: Option<String>,
#[arg(long)]
pub bare_clone: bool,
#[arg(long)]
pub obfuscate: bool,
#[arg(long, default_value = "AA0")]
pub obfuscation_format: String,
#[arg(short, long)]
pub password: Option<String>,
#[arg(long, default_value = "32")]
pub password_length: u32,
#[arg(short, long)]
pub username: Option<String>,
#[arg(long, default_value = "16")]
pub username_length: u32,
#[arg(short, long)]
pub salt: Option<String>,
#[arg(long, default_value = "64")]
pub salt_length: u32,
#[arg(short, long, action = clap::ArgAction::Count, default_value = "0")]
pub debug: u8,
}