use std::path::PathBuf;
use clap::{ArgAction, Parser};
#[derive(Debug, Parser)]
#[command(version, about, long_about = None)]
pub struct Args {
pub formula: PathBuf,
pub derivation: PathBuf,
pub output_formula: Option<PathBuf>,
#[arg(long, default_value_t, group = "formula_format")]
pub opb: bool,
#[arg(long, default_value_t, group = "formula_format")]
pub cnf: bool,
#[arg(long, default_value_t, group = "formula_format")]
pub wcnf: bool,
#[arg(short, long, value_name = "OUTPUT_FILE", default_value = None)]
pub elaborate: Option<PathBuf>,
#[arg(short, long, default_value_t = false, group = "progress")]
pub trace: bool,
#[arg(short = 'f', long)]
pub trace_failed: bool,
#[arg(short = 'u', long = "unchecked-deletion", action=ArgAction::SetFalse, default_value_t = true)]
pub checked_deletion: bool,
#[arg(short = 'c', long = "force-checked-deletion")]
pub force_checked_deletion: bool,
#[arg(long = "disable-result-printing", action=ArgAction::SetFalse, default_value_t = true)]
pub print_verification_result: bool,
#[arg(long = "hide-warnings", action=ArgAction::SetFalse, default_value_t = true)]
pub show_warnings: bool,
#[arg(short = 'p', long, default_value_t = false, group = "progress")]
pub show_progress: bool,
}
impl Default for Args {
fn default() -> Self {
Args {
checked_deletion: true,
force_checked_deletion: false,
print_verification_result: true,
formula: PathBuf::default(),
derivation: PathBuf::default(),
output_formula: None,
elaborate: None,
trace: false,
opb: false,
cnf: false,
wcnf: false,
trace_failed: false,
show_warnings: true,
show_progress: false,
}
}
}