use clap::{Parser, Subcommand};
use strum::{EnumDiscriminants, EnumIter, EnumString, IntoStaticStr};
#[derive(Parser)]
#[command(version, about, long_about = None)]
#[command(propagate_version = true)]
pub struct Cli {
#[command(subcommand)]
pub command: Commands,
}
#[derive(Subcommand, EnumDiscriminants, EnumString)]
#[strum_discriminants(derive(EnumIter, IntoStaticStr, EnumString))]
#[strum_discriminants(name(CommandsTypes))]
pub enum Commands {
Add {
name: String,
cmd: Vec<String>,
},
Replace {
name: String,
cmd: Vec<String>,
},
Edit {
name: String,
cmd: Vec<String>,
},
Remove {
name: String,
},
Rm {
name: String,
},
List,
Update,
Upgrade,
Prompt,
}