mod add;
mod init;
mod list;
mod remove;
use clap::{Args, Subcommand};
#[derive(Args)]
pub struct UiCommand {
#[command(subcommand)]
command: UiSubcommand,
}
#[derive(Subcommand)]
enum UiSubcommand {
Init(init::InitCommand),
Add(add::AddCommand),
List(list::ListCommand),
Remove(remove::RemoveCommand),
}
impl UiCommand {
pub fn run(self) {
match self.command {
UiSubcommand::Init(cmd) => cmd.run(),
UiSubcommand::Add(cmd) => cmd.run(),
UiSubcommand::List(cmd) => cmd.run(),
UiSubcommand::Remove(cmd) => cmd.run(),
}
}
}
#[derive(Args)]
struct PackageArg {
#[arg(short, long, value_name = "SPEC")]
package: Option<String>,
}