use crate::{Method, Target};
#[derive(clap::Parser, Debug)]
#[command(author, version, about, long_about = None)]
pub struct Cli {
#[arg(short, long, required = true, value_name("Source"))]
pub input: String,
#[arg(short, long, value_enum, default_value_t = Target::File)]
pub target: Target,
#[arg(short, long, value_enum, default_value_t = Method::Time)]
pub method: Method,
#[arg(short, long)]
pub recursive: bool,
#[arg(short, long)]
pub depth: Option<usize>,
#[arg(short, long, default_value_t = 10)]
pub nbits: usize,
#[arg(short, long, default_value_t = 1)]
pub start: usize,
#[arg(long)]
pub with: Option<String>,
#[arg(long, default_value_t = String::from("-"))]
pub delimiter: String,
#[arg(long)]
pub indiscriminate: bool,
#[arg(short, long)]
pub verbose: bool,
#[arg(short, long)]
pub yes: bool,
#[arg(long)]
pub it: bool,
#[arg(long)]
pub roll: bool,
#[arg(long, default_value_t = String::from(".renify_cache"))]
pub cache: String,
}