use super::common::OutputFormat;
use clap::{Args, Subcommand};
use std::path::PathBuf;
#[derive(Args, Debug)]
pub struct TrustBasisArgs {
#[command(subcommand)]
pub cmd: TrustBasisSub,
}
#[derive(Subcommand, Debug)]
pub enum TrustBasisSub {
Generate(TrustBasisGenerateArgs),
Diff(TrustBasisDiffArgs),
}
#[derive(Args, Debug, Clone)]
pub struct TrustBasisGenerateArgs {
#[arg(value_name = "BUNDLE")]
pub bundle: PathBuf,
#[arg(long, short = 'o')]
pub out: Option<PathBuf>,
#[arg(long, value_delimiter = ',')]
pub pack: Option<Vec<String>>,
#[arg(long, default_value = "500")]
pub max_results: usize,
}
#[derive(Args, Debug, Clone)]
pub struct TrustBasisDiffArgs {
#[arg(value_name = "BASELINE")]
pub baseline: PathBuf,
#[arg(value_name = "CANDIDATE")]
pub candidate: PathBuf,
#[arg(long, value_enum, default_value_t = OutputFormat::Text)]
pub format: OutputFormat,
#[arg(long)]
pub fail_on_regression: bool,
}