use clap::{Args, Subcommand, ValueEnum};
#[derive(Subcommand, Debug)]
pub enum AddCommand {
Node(AddNodeArgs),
Driver(AddDriverArgs),
Behavior(AddBehaviorArgs),
#[command(external_subcommand)]
Framework(Vec<String>),
}
#[derive(Args, Debug)]
pub struct AddNodeArgs {
pub name: String,
#[arg(short, long)]
pub description: Option<String>,
}
#[derive(Args, Debug)]
pub struct AddDriverArgs {
pub name: String,
#[arg(short = 't', long, value_enum)]
pub r#type: AddDriverType,
}
#[derive(Args, Debug)]
pub struct AddBehaviorArgs {
pub name: String,
#[arg(short, long)]
pub description: Option<String>,
}
#[derive(Debug, Clone, Copy, ValueEnum)]
pub enum AddDriverType {
Camera,
Motor,
Sensor,
Imu,
}