use std::path::PathBuf;
use clap::{Parser, ValueEnum};
#[derive(Parser, Debug)]
#[command(version, about)]
pub struct Args {
#[arg(
long,
conflicts_with = "file",
conflicts_with = "generate_template_basic",
conflicts_with = "mode"
)]
pub generate_template: bool,
#[arg(
long,
conflicts_with = "file",
conflicts_with = "generate_template",
conflicts_with = "mode",
hide = true
)]
pub generate_template_basic: bool,
#[arg(
short,
long,
required_unless_present = "generate_template",
required_unless_present = "generate_template_basic"
)]
pub file: Option<String>,
#[arg(short, long, value_enum, default_value_t = OutputFormat::Table, requires = "file")]
pub mode: OutputFormat,
#[arg(short, long)]
pub output: Option<PathBuf>,
#[arg(short = 'k', long)]
pub insecure: bool,
#[arg(short = 'v', long)]
pub verbose: bool,
}
#[derive(Debug, Clone, ValueEnum)]
pub enum OutputFormat {
Text,
Table,
Json,
}