mecha10-cli 0.9.0

Mecha10 CLI tool
Documentation
//! Add command arguments
//!
//! Commands for adding components to a Mecha10 project.

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,
}