#[derive(clap::Parser, Debug)]
#[command(author, version, about, long_about = None)]
pub(crate) struct Args {
    #[clap(subcommand)]
    pub command: Commands,
}

#[derive(clap::Subcommand, Debug)]
pub(crate) enum Commands {
    Hello(Hello),
}

#[derive(clap::Args, Debug)]
pub(crate) struct Hello {
    #[clap(subcommand)]
    pub command: HelloCommands,
}

#[derive(clap::Subcommand, Debug)]
pub(crate) enum HelloCommands {
    World,
    Name {
        #[arg()]
        name: String,
    },
}