use clap::{ColorChoice, Parser, Subcommand, builder::Styles};
fn styles() -> Styles {
Styles::styled()
.header(clap::builder::styling::AnsiColor::Green.on_default())
.usage(clap::builder::styling::AnsiColor::Green.on_default())
.literal(clap::builder::styling::AnsiColor::Blue.on_default())
.placeholder(clap::builder::styling::AnsiColor::Magenta.on_default())
}
#[derive(Parser)]
#[command(
version,
about,
long_about = None,
color = ColorChoice::Always,
styles = styles()
)]
pub struct Cli {
#[command(subcommand)]
pub command: Option<MainCommands>,
}
#[derive(Subcommand)]
pub enum MainCommands {
#[command(name = "n")]
Network {
#[command(subcommand)]
module: Option<NetworkCommands>,
},
#[command(name = "a")]
Audio {},
}
#[derive(Subcommand)]
pub enum NetworkCommands {
#[command(name = "b")]
Bluetooth {},
#[command(name = "w")]
Wifi {},
}