Skip to main content

baizekit_app/
command.rs

1use clap::{Parser, Subcommand};
2use std::path::PathBuf;
3
4// CLI命令解析结构
5#[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// 默认空命令
24#[derive(Subcommand, Debug, Clone, Default)]
25pub enum EmptyCommand {
26    #[default]
27    #[command(hide = true)]
28    None,
29}