summaryrefslogtreecommitdiffstats
path: root/vendor/clap/examples/derive_ref
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/clap/examples/derive_ref')
-rw-r--r--vendor/clap/examples/derive_ref/augment_args.rs27
-rw-r--r--vendor/clap/examples/derive_ref/augment_subcommands.rs21
-rw-r--r--vendor/clap/examples/derive_ref/custom-bool.md47
-rw-r--r--vendor/clap/examples/derive_ref/custom-bool.rs32
-rw-r--r--vendor/clap/examples/derive_ref/flatten_hand_args.rs81
-rw-r--r--vendor/clap/examples/derive_ref/hand_subcommand.rs81
-rw-r--r--vendor/clap/examples/derive_ref/interop_tests.md256
7 files changed, 0 insertions, 545 deletions
diff --git a/vendor/clap/examples/derive_ref/augment_args.rs b/vendor/clap/examples/derive_ref/augment_args.rs
deleted file mode 100644
index 310556914..000000000
--- a/vendor/clap/examples/derive_ref/augment_args.rs
+++ /dev/null
@@ -1,27 +0,0 @@
-use clap::{arg, Args, Command, FromArgMatches as _};
-
-#[derive(Args, Debug)]
-struct DerivedArgs {
- #[clap(short, long, action)]
- 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);
-}
diff --git a/vendor/clap/examples/derive_ref/augment_subcommands.rs b/vendor/clap/examples/derive_ref/augment_subcommands.rs
deleted file mode 100644
index 199da98b4..000000000
--- a/vendor/clap/examples/derive_ref/augment_subcommands.rs
+++ /dev/null
@@ -1,21 +0,0 @@
-use clap::{Command, FromArgMatches as _, Parser, Subcommand as _};
-
-#[derive(Parser, Debug)]
-enum Subcommands {
- Derived {
- #[clap(short, long, action)]
- derived_flag: bool,
- },
-}
-
-fn main() {
- let cli = Command::new("Built CLI");
- // Augment with derived subcommands
- let cli = Subcommands::augment_subcommands(cli);
-
- let matches = cli.get_matches();
- let derived_subcommands = Subcommands::from_arg_matches(&matches)
- .map_err(|err| err.exit())
- .unwrap();
- println!("Derived subcommands: {:#?}", derived_subcommands);
-}
diff --git a/vendor/clap/examples/derive_ref/custom-bool.md b/vendor/clap/examples/derive_ref/custom-bool.md
deleted file mode 100644
index 619f9ba8e..000000000
--- a/vendor/clap/examples/derive_ref/custom-bool.md
+++ /dev/null
@@ -1,47 +0,0 @@
-*Jump to [source](custom-bool.rs)*
-
-Example of overriding the magic `bool` behavior
-
-```console
-$ custom-bool --help
-clap [..]
-A simple to use, efficient, and full-featured Command Line Argument Parser
-
-USAGE:
- custom-bool[EXE] [OPTIONS] --foo <FOO> <BOOM>
-
-ARGS:
- <BOOM> [possible values: true, false]
-
-OPTIONS:
- --bar <BAR> [default: false]
- --foo <FOO> [possible values: true, false]
- -h, --help Print help information
- -V, --version Print version information
-
-$ custom-bool
-? failed
-error: The following required arguments were not provided:
- --foo <FOO>
- <BOOM>
-
-USAGE:
- custom-bool[EXE] [OPTIONS] --foo <FOO> <BOOM>
-
-For more information try --help
-
-$ custom-bool --foo true false
-[examples/derive_ref/custom-bool.rs:31] opt = Opt {
- foo: true,
- bar: false,
- boom: false,
-}
-
-$ custom-bool --foo true --bar true false
-[examples/derive_ref/custom-bool.rs:31] opt = Opt {
- foo: true,
- bar: true,
- boom: false,
-}
-
-```
diff --git a/vendor/clap/examples/derive_ref/custom-bool.rs b/vendor/clap/examples/derive_ref/custom-bool.rs
deleted file mode 100644
index d3c321e72..000000000
--- a/vendor/clap/examples/derive_ref/custom-bool.rs
+++ /dev/null
@@ -1,32 +0,0 @@
-use clap::Parser;
-
-#[derive(Parser, Debug, PartialEq)]
-#[clap(author, version, about, long_about = None)]
-struct Opt {
- // Default parser for `Set` is FromStr::from_str.
- // `impl FromStr for bool` parses `true` or `false` so this
- // works as expected.
- #[clap(long, action = clap::ArgAction::Set)]
- foo: bool,
-
- // Of course, this could be done with an explicit parser function.
- #[clap(long, action = clap::ArgAction::Set, value_parser = true_or_false, default_value_t)]
- bar: bool,
-
- // `bool` can be positional only with explicit `action` annotation
- #[clap(action = clap::ArgAction::Set)]
- boom: bool,
-}
-
-fn true_or_false(s: &str) -> Result<bool, &'static str> {
- match s {
- "true" => Ok(true),
- "false" => Ok(false),
- _ => Err("expected `true` or `false`"),
- }
-}
-
-fn main() {
- let opt = Opt::parse();
- dbg!(opt);
-}
diff --git a/vendor/clap/examples/derive_ref/flatten_hand_args.rs b/vendor/clap/examples/derive_ref/flatten_hand_args.rs
deleted file mode 100644
index c10e0b29f..000000000
--- a/vendor/clap/examples/derive_ref/flatten_hand_args.rs
+++ /dev/null
@@ -1,81 +0,0 @@
-use clap::error::Error;
-use clap::{Arg, ArgAction, ArgMatches, Args, Command, FromArgMatches, Parser};
-
-#[derive(Debug)]
-struct CliArgs {
- foo: bool,
- bar: bool,
- quuz: Option<String>,
-}
-
-impl FromArgMatches for CliArgs {
- fn from_arg_matches(matches: &ArgMatches) -> Result<Self, Error> {
- let mut matches = matches.clone();
- Self::from_arg_matches_mut(&mut matches)
- }
- fn from_arg_matches_mut(matches: &mut ArgMatches) -> Result<Self, Error> {
- Ok(Self {
- foo: matches.get_flag("foo"),
- bar: matches.get_flag("bar"),
- quuz: matches.remove_one::<String>("quuz"),
- })
- }
- fn update_from_arg_matches(&mut self, matches: &ArgMatches) -> Result<(), Error> {
- let mut matches = matches.clone();
- self.update_from_arg_matches_mut(&mut matches)
- }
- fn update_from_arg_matches_mut(&mut self, matches: &mut ArgMatches) -> Result<(), Error> {
- self.foo |= matches.get_flag("foo");
- self.bar |= matches.get_flag("bar");
- if let Some(quuz) = matches.remove_one::<String>("quuz") {
- self.quuz = Some(quuz);
- }
- Ok(())
- }
-}
-
-impl Args for CliArgs {
- fn augment_args(cmd: Command<'_>) -> Command<'_> {
- cmd.arg(
- Arg::new("foo")
- .short('f')
- .long("foo")
- .action(ArgAction::SetTrue),
- )
- .arg(
- Arg::new("bar")
- .short('b')
- .long("bar")
- .action(ArgAction::SetTrue),
- )
- .arg(Arg::new("quuz").short('q').long("quuz").takes_value(true))
- }
- fn augment_args_for_update(cmd: Command<'_>) -> Command<'_> {
- cmd.arg(
- Arg::new("foo")
- .short('f')
- .long("foo")
- .action(ArgAction::SetTrue),
- )
- .arg(
- Arg::new("bar")
- .short('b')
- .long("bar")
- .action(ArgAction::SetTrue),
- )
- .arg(Arg::new("quuz").short('q').long("quuz").takes_value(true))
- }
-}
-
-#[derive(Parser, Debug)]
-struct Cli {
- #[clap(short, long, action)]
- top_level: bool,
- #[clap(flatten)]
- more_args: CliArgs,
-}
-
-fn main() {
- let args = Cli::parse();
- println!("{:#?}", args);
-}
diff --git a/vendor/clap/examples/derive_ref/hand_subcommand.rs b/vendor/clap/examples/derive_ref/hand_subcommand.rs
deleted file mode 100644
index e9423bdc0..000000000
--- a/vendor/clap/examples/derive_ref/hand_subcommand.rs
+++ /dev/null
@@ -1,81 +0,0 @@
-use clap::error::{Error, ErrorKind};
-use clap::{ArgMatches, Args as _, Command, FromArgMatches, Parser, Subcommand};
-
-#[derive(Parser, Debug)]
-struct AddArgs {
- #[clap(value_parser)]
- name: Vec<String>,
-}
-#[derive(Parser, Debug)]
-struct RemoveArgs {
- #[clap(short, long, action)]
- force: bool,
- #[clap(value_parser)]
- name: Vec<String>,
-}
-
-#[derive(Debug)]
-enum CliSub {
- Add(AddArgs),
- Remove(RemoveArgs),
-}
-
-impl FromArgMatches for CliSub {
- fn from_arg_matches(matches: &ArgMatches) -> Result<Self, Error> {
- match matches.subcommand() {
- Some(("add", args)) => Ok(Self::Add(AddArgs::from_arg_matches(args)?)),
- Some(("remove", args)) => Ok(Self::Remove(RemoveArgs::from_arg_matches(args)?)),
- Some((_, _)) => Err(Error::raw(
- ErrorKind::UnrecognizedSubcommand,
- "Valid subcommands are `add` and `remove`",
- )),
- None => Err(Error::raw(
- ErrorKind::MissingSubcommand,
- "Valid subcommands are `add` and `remove`",
- )),
- }
- }
- fn update_from_arg_matches(&mut self, matches: &ArgMatches) -> Result<(), Error> {
- match matches.subcommand() {
- Some(("add", args)) => *self = Self::Add(AddArgs::from_arg_matches(args)?),
- Some(("remove", args)) => *self = Self::Remove(RemoveArgs::from_arg_matches(args)?),
- Some((_, _)) => {
- return Err(Error::raw(
- ErrorKind::UnrecognizedSubcommand,
- "Valid subcommands are `add` and `remove`",
- ))
- }
- None => (),
- };
- Ok(())
- }
-}
-
-impl Subcommand for CliSub {
- fn augment_subcommands(cmd: Command<'_>) -> Command<'_> {
- cmd.subcommand(AddArgs::augment_args(Command::new("add")))
- .subcommand(RemoveArgs::augment_args(Command::new("remove")))
- .subcommand_required(true)
- }
- fn augment_subcommands_for_update(cmd: Command<'_>) -> Command<'_> {
- cmd.subcommand(AddArgs::augment_args(Command::new("add")))
- .subcommand(RemoveArgs::augment_args(Command::new("remove")))
- .subcommand_required(true)
- }
- fn has_subcommand(name: &str) -> bool {
- matches!(name, "add" | "remove")
- }
-}
-
-#[derive(Parser, Debug)]
-struct Cli {
- #[clap(short, long, action)]
- top_level: bool,
- #[clap(subcommand)]
- subcommand: CliSub,
-}
-
-fn main() {
- let args = Cli::parse();
- println!("{:#?}", args);
-}
diff --git a/vendor/clap/examples/derive_ref/interop_tests.md b/vendor/clap/examples/derive_ref/interop_tests.md
deleted file mode 100644
index 746fe1878..000000000
--- a/vendor/clap/examples/derive_ref/interop_tests.md
+++ /dev/null
@@ -1,256 +0,0 @@
-Following are tests for the interop examples in this directory.
-
-## Augment Args
-
-```console
-$ interop_augment_args
-Value of built: false
-Value of derived via ArgMatches: false
-Value of derived: DerivedArgs {
- derived: false,
-}
-
-```
-
-```console
-$ interop_augment_args -b --derived
-Value of built: true
-Value of derived via ArgMatches: true
-Value of derived: DerivedArgs {
- derived: true,
-}
-
-```
-
-```console
-$ interop_augment_args -d --built
-Value of built: true
-Value of derived via ArgMatches: true
-Value of derived: DerivedArgs {
- derived: true,
-}
-
-```
-
-```console
-$ interop_augment_args --unknown
-? failed
-error: Found argument '--unknown' which wasn't expected, or isn't valid in this context
-
- If you tried to supply `--unknown` as a value rather than a flag, use `-- --unknown`
-
-USAGE:
- interop_augment_args[EXE] [OPTIONS]
-
-For more information try --help
-
-```
-
-## Augment Subcommands
-
-```console
-$ interop_augment_subcommands
-? failed
-error: A subcommand is required but one was not provided.
-```
-
-```console
-$ interop_augment_subcommands derived
-Derived subcommands: Derived {
- derived_flag: false,
-}
-
-```
-
-```console
-$ interop_augment_subcommands derived --derived-flag
-Derived subcommands: Derived {
- derived_flag: true,
-}
-
-```
-
-```console
-$ interop_augment_subcommands derived --unknown
-? failed
-error: Found argument '--unknown' which wasn't expected, or isn't valid in this context
-
- If you tried to supply `--unknown` as a value rather than a flag, use `-- --unknown`
-
-USAGE:
- interop_augment_subcommands[EXE] derived [OPTIONS]
-
-For more information try --help
-
-```
-
-```console
-$ interop_augment_subcommands unknown
-? failed
-error: Found argument 'unknown' which wasn't expected, or isn't valid in this context
-
-USAGE:
- interop_augment_subcommands[EXE] [SUBCOMMAND]
-
-For more information try --help
-
-```
-
-## Hand-Implemented Subcommand
-
-```console
-$ interop_hand_subcommand
-? failed
-error: 'interop_hand_subcommand[EXE]' requires a subcommand but one was not provided
-
-USAGE:
- interop_hand_subcommand[EXE] [OPTIONS] <SUBCOMMAND>
-
-For more information try --help
-
-```
-
-```console
-$ interop_hand_subcommand add
-Cli {
- top_level: false,
- subcommand: Add(
- AddArgs {
- name: [],
- },
- ),
-}
-
-```
-
-```console
-$ interop_hand_subcommand add a b c
-Cli {
- top_level: false,
- subcommand: Add(
- AddArgs {
- name: [
- "a",
- "b",
- "c",
- ],
- },
- ),
-}
-
-```
-
-```console
-$ interop_hand_subcommand add --unknown
-? failed
-error: Found argument '--unknown' which wasn't expected, or isn't valid in this context
-
- If you tried to supply `--unknown` as a value rather than a flag, use `-- --unknown`
-
-USAGE:
- interop_hand_subcommand[EXE] add [NAME]...
-
-For more information try --help
-
-```
-
-```console
-$ interop_hand_subcommand remove
-Cli {
- top_level: false,
- subcommand: Remove(
- RemoveArgs {
- force: false,
- name: [],
- },
- ),
-}
-
-```
-
-```console
-$ interop_hand_subcommand remove --force a b c
-Cli {
- top_level: false,
- subcommand: Remove(
- RemoveArgs {
- force: true,
- name: [
- "a",
- "b",
- "c",
- ],
- },
- ),
-}
-
-```
-
-```console
-$ interop_hand_subcommand unknown
-? failed
-error: Found argument 'unknown' which wasn't expected, or isn't valid in this context
-
-USAGE:
- interop_hand_subcommand[EXE] [OPTIONS] <SUBCOMMAND>
-
-For more information try --help
-
-```
-
-## Flatten Hand-Implemented Args
-
-```console
-$ interop_flatten_hand_args
-Cli {
- top_level: false,
- more_args: CliArgs {
- foo: false,
- bar: false,
- quuz: None,
- },
-}
-
-```
-
-```console
-$ interop_flatten_hand_args -f --bar
-Cli {
- top_level: false,
- more_args: CliArgs {
- foo: true,
- bar: true,
- quuz: None,
- },
-}
-
-```
-
-```console
-$ interop_flatten_hand_args --quuz abc
-Cli {
- top_level: false,
- more_args: CliArgs {
- foo: false,
- bar: false,
- quuz: Some(
- "abc",
- ),
- },
-}
-
-```
-
-```console
-$ interop_flatten_hand_args --unknown
-? failed
-error: Found argument '--unknown' which wasn't expected, or isn't valid in this context
-
- If you tried to supply `--unknown` as a value rather than a flag, use `-- --unknown`
-
-USAGE:
- interop_flatten_hand_args[EXE] [OPTIONS]
-
-For more information try --help
-
-```