chore(vendor): add anyhow crate
This commit was merged in pull request #68.
This commit is contained in:
27
third_party/crates/clap-4.6.7/examples/derive_ref/augment_args.rs
vendored
Normal file
27
third_party/crates/clap-4.6.7/examples/derive_ref/augment_args.rs
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
use clap::{Args, Command, FromArgMatches as _, arg};
|
||||
|
||||
#[derive(Args, Debug)]
|
||||
struct DerivedArgs {
|
||||
#[arg(short, long)]
|
||||
derived: bool,
|
||||
}
|
||||
|
||||
fn main() {
|
||||
let cli = Command::new("CLI").arg(arg!(-b - -built).action(clap::ArgAction::SetTrue));
|
||||
// Augment built args with derived args
|
||||
let cli = DerivedArgs::augment_args(cli);
|
||||
|
||||
let matches = cli.get_matches();
|
||||
println!("Value of built: {:?}", matches.get_flag("built"));
|
||||
println!(
|
||||
"Value of derived via ArgMatches: {:?}",
|
||||
matches.get_flag("derived")
|
||||
);
|
||||
|
||||
// Since DerivedArgs implements FromArgMatches, we can extract it from the unstructured ArgMatches.
|
||||
// This is the main benefit of using derived arguments.
|
||||
let derived_matches = DerivedArgs::from_arg_matches(&matches)
|
||||
.map_err(|err| err.exit())
|
||||
.unwrap();
|
||||
println!("Value of derived: {derived_matches:#?}");
|
||||
}
|
||||
Reference in New Issue
Block a user