use clap::Parser;
#[derive(Parser, Debug)]
#[command(name = "tur", author, version, about, long_about = None)]
pub struct Cli {
#[arg(short, long, num_args = 1..)]
pub url: Vec<String>,
#[arg(short, long, default_value = ".")]
pub dir: String,
#[arg(short, long)]
pub connections: Option<usize>,
#[arg(long)]
pub min_connections: Option<usize>,
#[arg(long)]
pub max_connections: Option<usize>,
#[arg(short, long, default_value_t = 3)]
pub tasks: usize,
#[arg(long, default_value_t = false)]
pub dry_run: bool,
#[arg(long)]
pub dry_run_size_mb: Option<u64>,
#[arg(long, default_value_t = 2)]
pub borrow_limit_mb: u64,
#[arg(long, default_value = "equal")]
pub schedule_mode: String,
#[arg(long, default_value = "http1")]
pub http_mode: String,
#[arg(long, default_value_t = false)]
pub headless: bool,
#[arg(long)]
pub log_root: Option<String>,
#[arg(long, default_value_t = false)]
pub no_origin_memory: bool,
#[arg(long, default_value_t = 32)]
pub max_total_connections: usize,
#[arg(long, default_value_t = 0)]
pub bandwidth_limit: u64,
#[arg(long, default_value_t = 0)]
pub per_download_limit: u64,
#[arg(long, default_value_t = false)]
pub no_splice: bool,
#[arg(long, default_value_t = false)]
pub no_io_uring: bool,
#[arg(long, default_value_t = 1)]
pub runtime_threads: usize,
}