use clap::{Parser, ValueEnum};
use clap_complete::Shell;
use std::path::PathBuf;
#[derive(Parser)]
#[command(name = "diffai")]
#[command(about = "An AI/ML diff tool for structured data and ML models")]
#[command(version)]
pub struct Args {
#[arg(value_name = "FILE1", required_unless_present = "completions")]
pub input1: Option<PathBuf>,
#[arg(value_name = "FILE2", required_unless_present = "completions")]
pub input2: Option<PathBuf>,
#[arg(long, value_enum, value_name = "SHELL")]
pub completions: Option<Shell>,
#[arg(short, long, value_enum)]
pub format: Option<Format>,
#[arg(short, long)]
pub output: Option<String>,
#[arg(long)]
pub path: Option<String>,
#[arg(long)]
pub ignore_keys_regex: Option<String>,
#[arg(long)]
pub epsilon: Option<f64>,
#[arg(long)]
pub array_id_key: Option<String>,
#[arg(short, long)]
pub quiet: bool,
#[arg(long)]
pub brief: bool,
#[arg(short, long)]
pub verbose: bool,
#[arg(long)]
pub no_color: bool,
}
#[derive(Copy, Clone, PartialEq, Eq, PartialOrd, Ord, ValueEnum, Debug)]
pub enum Format {
Pytorch,
Safetensors,
Numpy,
Matlab,
}