catalyst 0.2.4

A lightweight API testing tool
Documentation
use clap::{Parser, Subcommand, arg};

#[derive(Parser)]
#[command(name = "catalyst")]
#[command(version, about = "A lightweight API testing tool", long_about = None)]
#[command(arg_required_else_help(true))]
pub struct Opts {
    #[command(subcommand)]
    pub command: Commands,
}

#[derive(Subcommand)]
pub enum Commands {
    Run {
        #[arg(short = 'f', long, help = "Filter by test name")]
        filter: Option<String>,

        #[arg(long, default_value = "false", help = "Disable colored output")]
        disable_color: bool,

        #[arg(short = 'v', long, help = "Enable verbose output")]
        verbose: bool,

        #[arg(long, help = "Specify a custom test file path")]
        file: Option<String>,

        #[arg(short = 'd', long, help = "Enable debug output")]
        debug: bool,
    },

    Validate {
        #[arg(long, help = "Specify a custom test file path")]
        file: Option<String>,
    },

    List {
        #[arg(short = 'v', long, help = "Enable detailed test information")]
        verbose: bool,

        #[arg(long, help = "Specify a custom test file path")]
        file: Option<String>,
    },
}