use anstyle::{AnsiColor, Color, Style};
use clap::{Parser, Subcommand, builder::Styles};
use clap_verbosity_flag::Verbosity;
use crate::commands;
fn get_styles() -> Styles {
Styles::styled()
.header(Style::new().bold().fg_color(Some(Color::Ansi(AnsiColor::Green))))
.literal(Style::new().bold().fg_color(Some(Color::Ansi(AnsiColor::Cyan))))
.usage(Style::new().bold().fg_color(Some(Color::Ansi(AnsiColor::Green))))
.placeholder(Style::new().bold().fg_color(Some(Color::Ansi(AnsiColor::Yellow))))
.error(Style::new().bold().fg_color(Some(Color::Ansi(AnsiColor::BrightRed))))
}
#[derive(Debug, Parser)]
#[command(author, about, version)]
#[command(propagate_version = true)]
#[command(styles=get_styles())]
pub struct Cli {
#[command(subcommand)]
pub command: Command,
#[clap(flatten)]
pub verbose: Verbosity,
}
#[derive(Debug, Subcommand)]
pub enum Command {
Create(commands::create::Args),
Convert(commands::convert::Args),
Extract(commands::extract::Args),
Inspect(commands::inspect::Args),
}