use clap::{Parser, Subcommand};
#[derive(Parser, Debug)]
#[command(name = "rusty-pv", about, version, arg_required_else_help = false)]
pub struct Cli {
#[arg(short = 'p', long = "progress")]
pub progress: bool,
#[arg(short = 't', long = "timer")]
pub timer: bool,
#[arg(short = 'e', long = "eta")]
pub eta: bool,
#[arg(short = 'I', long = "fineta")]
pub fineta: bool,
#[arg(short = 'r', long = "rate")]
pub rate: bool,
#[arg(short = 'b', long = "bytes")]
pub bytes: bool,
#[arg(short = 'a', long = "average-rate")]
pub average_rate: bool,
#[arg(short = 'n', long = "numeric")]
pub numeric: bool,
#[arg(short = 'q', long = "quiet")]
pub quiet: bool,
#[arg(short = 'W', long = "wait")]
pub wait: bool,
#[arg(short = 'l', long = "line-mode")]
pub line_mode: bool,
#[arg(short = '0', long = "null-mode")]
pub null_mode: bool,
#[arg(short = 'f', long = "force")]
pub force: bool,
#[arg(short = 'E', long = "skip-errors")]
pub skip_errors: bool,
#[arg(short = 'c', long = "cursor")]
pub cursor: bool,
#[arg(long = "si")]
pub si_units: bool,
#[arg(short = 'D', long = "delay-start", value_name = "SEC")]
pub delay_start: Option<f64>,
#[arg(short = 'i', long = "interval", value_name = "SEC")]
pub interval: Option<f64>,
#[arg(short = 'N', long = "name", value_name = "NAME")]
pub name: Option<String>,
#[arg(short = 'L', long = "rate-limit", value_name = "RATE")]
pub rate_limit: Option<String>,
#[arg(short = 'B', long = "buffer-size", value_name = "BYTES")]
pub buffer_size: Option<String>,
#[arg(short = 's', long = "size", value_name = "SIZE")]
pub size: Option<String>,
#[arg(short = 'w', long = "width", value_name = "WIDTH")]
pub width: Option<u16>,
#[arg(short = 'H', long = "height", value_name = "HEIGHT")]
pub height: Option<u16>,
#[arg(long = "strict")]
pub strict: bool,
#[arg(long = "no-strict", conflicts_with = "strict")]
pub no_strict: bool,
#[command(subcommand)]
pub subcommand: Option<PvSubcommand>,
pub paths: Vec<String>,
}
#[derive(Subcommand, Debug)]
pub enum PvSubcommand {
Completions {
#[arg(value_enum)]
shell: clap_complete::Shell,
},
}