use clap::Parser;
#[derive(Debug, Parser)]
#[command(author, version, about, long_about = None)]
pub struct CliArgs {
#[arg(short = 'L', long)]
pub list: bool,
#[arg(short, long)]
pub quiet: bool,
#[arg(short, long)]
pub verbose: bool,
#[arg(short, long)]
pub extract: bool,
#[arg(short = 'M', long)]
pub matryoshka: bool,
#[arg(short = 'a', long)]
pub search_all: bool,
#[arg(short = 'E', long, conflicts_with = "extract")]
pub entropy: bool,
#[arg(short, long)]
pub log: Option<String>,
#[arg(short, long)]
pub threads: Option<usize>,
#[arg(short = 'x', long, value_delimiter = ',', num_args = 1..)]
pub exclude: Option<Vec<String>>,
#[arg(short = 'y', long, value_delimiter = ',', num_args = 1.., conflicts_with = "exclude")]
pub include: Option<Vec<String>>,
#[arg(short = 'C', long, default_value = "extractions")]
pub directory: String,
pub file_name: Option<String>,
}
pub fn parse() -> CliArgs {
CliArgs::parse()
}