use clap::Parser;
#[derive(Parser, Debug)]
#[command(author, version, about, long_about = None)]
pub struct Args {
#[arg(value_name = "PATTERN")]
pub pattern: String,
#[arg(value_name = "PATH")]
pub paths: Vec<String>,
#[arg(short, long)]
pub ignore_case: bool,
#[arg(short = 'n', long)]
pub line_number: bool,
#[arg(short = 'H', long)]
pub with_filename: bool,
#[arg(short = 'r', long)]
pub recursive: bool,
#[arg(short = 's', long)]
pub no_messages: bool,
#[arg(short = 'v', long)]
pub invert_match: bool,
#[arg(short = 'l', long)]
pub files_with_matches: bool,
#[arg(short = 'L', long)]
pub files_without_match: bool,
#[arg(short = 'c', long)]
pub count: bool,
#[arg(short = 'B', long = "before-context", default_value_t = 0)]
pub before_context: usize,
#[arg(short = 'A', long = "after-context", default_value_t = 0)]
pub after_context: usize,
#[arg(short = 'C', long = "context", default_value_t = 0)]
pub context: usize,
#[arg(short = 'm', long = "max-count")]
pub max_count: Option<usize>,
#[arg(short = 'o', long = "only-matching")]
pub only_matching: bool,
#[arg(short = 'E', long = "extended-regexp")]
pub extended_regexp: bool,
#[arg(long = "color", default_value = "auto")]
pub color: String,
}