use clap::Args;
use std::path::PathBuf;
#[derive(Args, Clone)]
pub struct CompatibilityArgs {
#[arg(long = "hidden")]
pub hidden: bool,
#[arg(long = "no-ignore")]
pub no_ignore: bool,
#[arg(long = "no-ignore-vcs")]
pub no_ignore_vcs: bool,
#[arg(long = "no-ignore-parent")]
pub no_ignore_parent: bool,
#[arg(long = "ignore-file", value_name = "PATH")]
pub ignore_file: Option<PathBuf>,
#[arg(short = 'L', long = "follow")]
pub follow: bool,
#[arg(short = 'u', long = "unrestricted", action = clap::ArgAction::Count)]
pub unrestricted: u8,
#[arg(long = "one-file-system")]
pub one_file_system: bool,
#[arg(long = "sort", value_name = "SORTBY")]
pub sort: Option<String>,
#[arg(long = "sortr", value_name = "SORTBY")]
pub sortr: Option<String>,
#[arg(short = 'a', long = "text")]
pub text: bool,
#[arg(long = "binary")]
pub binary: bool,
#[arg(long = "max-filesize", value_name = "NUM+SUFFIX")]
pub max_filesize: Option<String>,
#[arg(short = 'E', long = "encoding", value_name = "ENCODING")]
pub encoding: Option<String>,
#[arg(long)]
pub crlf: bool,
#[arg(long = "null-data")]
pub null_data: bool,
#[arg(short = 'P', long = "pcre2")]
pub pcre2: bool,
#[arg(short = 'U', long = "multiline")]
pub multiline: bool,
#[arg(long = "multiline-dotall")]
pub multiline_dotall: bool,
#[arg(long = "engine", value_name = "ENGINE")]
pub engine: Option<String>,
#[arg(long = "dfa-size-limit", value_name = "NUM")]
pub dfa_size_limit: Option<String>,
#[arg(long = "regex-size-limit", value_name = "NUM")]
pub regex_size_limit: Option<String>,
#[arg(short = 'f', long = "file", value_name = "PATTERNFILE")]
pub pattern_file: Option<PathBuf>,
#[arg(long = "type-add", value_name = "TYPESPEC", action = clap::ArgAction::Append)]
pub type_add: Vec<String>,
#[arg(long = "type-clear", value_name = "TYPE", action = clap::ArgAction::Append)]
pub type_clear: Vec<String>,
#[arg(long = "iglob", value_name = "GLOB")]
pub iglob: Option<String>,
#[arg(short = 'j', long = "threads", value_name = "NUM")]
pub threads: Option<usize>,
#[arg(long)]
pub mmap: bool,
#[arg(long = "no-mmap")]
pub no_mmap: bool,
#[arg(long = "pre", value_name = "COMMAND")]
pub pre: Option<String>,
#[arg(long = "pre-glob", value_name = "GLOB")]
pub pre_glob: Option<String>,
#[arg(short = 'z', long = "search-zip")]
pub search_zip: bool,
#[arg(long)]
pub debug: bool,
#[arg(long)]
pub trace: bool,
#[arg(long = "no-messages")]
pub no_messages: bool,
#[arg(long = "no-config")]
pub no_config: bool,
}