use crate::version;
use clap::{Parser, ValueEnum};
#[derive(Parser, Debug)]
#[clap(name = "rq", author, version, about)]
#[clap(long_version = version::get_long_version())]
pub(super) struct Args {
pub query: String,
pub file_path: Option<String>,
#[clap(long)]
#[arg(conflicts_with = "file_path")]
pub json: Option<String>,
#[clap(short, long)]
pub verbose: bool,
#[clap(short, long)]
#[arg(conflicts_with = "file_path")]
pub compile: bool,
#[clap(short, long, value_enum, default_value_t = ResultArg::Nodes)]
pub result: ResultArg,
#[clap(long)]
pub force_input: Option<InputArg>,
}
#[derive(ValueEnum, Debug, Clone, Copy, PartialEq, Eq)]
pub(super) enum ResultArg {
Count,
Indices,
Nodes,
}
#[derive(ValueEnum, Debug, Clone, Copy, PartialEq, Eq)]
pub(super) enum InputArg {
Mmap,
Eager,
Buffered,
}