1use clap::{Parser, Subcommand};
2use std::path::PathBuf;
3
4#[derive(Parser, Clone)]
6pub struct Cli<T: Subcommand + Clone + 'static> {
7 #[arg(long, help = "启用详细输出")]
8 pub verbose: bool,
9
10 #[arg(long, help = "配置文件路径")]
11 pub config: Option<PathBuf>,
12
13 #[arg(long, help = "日志级别")]
14 pub log_level: Option<String>,
15
16 #[arg(long, help = "显示版本信息")]
17 pub version: bool,
18
19 #[command(subcommand)]
20 pub command: Option<T>,
21}
22
23#[derive(Subcommand, Debug, Clone, Default)]
25pub enum EmptyCommand {
26 #[default]
27 #[command(hide = true)]
28 None,
29}