use clap::{Parser, Subcommand};
#[derive(Parser)]
#[command(author, version, about, next_line_help = true, long_about = None)]
pub struct Args {
#[command(subcommand)]
pub(crate) sub: SubCommand,
}
#[derive(Subcommand)]
pub enum SubCommand {
Patch {
#[arg(short, long)]
file: Option<String>,
#[arg(name = "SEMANTIC_VER")]
ver: Option<String>,
},
Minor {
#[arg(short, long)]
file: Option<String>,
#[arg(name = "SEMANTIC_VER")]
ver: Option<String>,
},
Major {
#[arg(short, long)]
file: Option<String>,
#[arg(name = "SEMANTIC_VER")]
ver: Option<String>,
},
Pre {
#[arg(short, long)]
file: Option<String>,
#[arg(name = "PRERELEASE")]
pre: String,
#[arg(name = "SEMANTIC_VER")]
ver: Option<String>,
},
Build {
#[arg(short, long)]
file: Option<String>,
#[arg(name = "BUILD")]
build: String,
#[arg(name = "SEMANTIC_VER")]
ver: Option<String>,
},
}
#[test]
fn verify_cli() {
use clap::CommandFactory;
Args::command().debug_assert()
}