interop_augment_subcommands/
augment_subcommands.rs

1use clap::{Command, FromArgMatches as _, Parser, Subcommand as _};
2
3#[derive(Parser, Debug)]
4enum Subcommands {
5    Derived {
6        #[arg(short, long)]
7        derived_flag: bool,
8    },
9}
10
11fn main() {
12    let cli = Command::new("Built CLI");
13    // Augment with derived subcommands
14    let cli = Subcommands::augment_subcommands(cli);
15
16    let matches = cli.get_matches();
17    let derived_subcommands = Subcommands::from_arg_matches(&matches)
18        .map_err(|err| err.exit())
19        .unwrap();
20    println!("Derived subcommands: {derived_subcommands:#?}");
21}