use clap::Args;
use std::path::PathBuf;
#[derive(Args)]
pub struct QueryArgs {
pub query: String,
#[arg(long, default_value = "contracts")]
pub contract_dir: PathBuf,
#[arg(long)]
pub regex: bool,
#[arg(long)]
pub literal: bool,
#[arg(long)]
pub case_sensitive: bool,
#[arg(short, long, default_value = "10")]
pub limit: usize,
#[arg(long)]
pub obligation: Option<String>,
#[arg(long)]
pub depends_on: Option<String>,
#[arg(long)]
pub depended_by: Option<String>,
#[arg(long)]
pub unproven: bool,
#[arg(long)]
pub min_score: Option<f64>,
#[arg(long)]
pub min_level: Option<String>,
#[arg(long)]
pub score: bool,
#[arg(long)]
pub graph: bool,
#[arg(long)]
pub paper: bool,
#[arg(long)]
pub proof_status: bool,
#[arg(long)]
pub binding_info: bool,
#[arg(long)]
pub binding_gaps: bool,
#[arg(long)]
pub diff: bool,
#[arg(long)]
pub pagerank: bool,
#[arg(long)]
pub call_sites: bool,
#[arg(long)]
pub violations: bool,
#[arg(long)]
pub coverage_map: bool,
#[arg(long)]
pub project: Option<String>,
#[arg(long)]
pub include_project: Option<PathBuf>,
#[arg(long)]
pub all_projects: bool,
#[arg(long)]
pub tier: Option<u8>,
#[arg(long, value_name = "CLASS")]
pub class: Option<char>,
#[arg(long)]
pub kind: Option<String>,
#[arg(long)]
pub rebuild_index: bool,
#[arg(long)]
pub binding: Option<PathBuf>,
#[arg(short, long, default_value = "text")]
pub format: String,
#[arg(long)]
pub exit_code: bool,
}