summaryrefslogtreecommitdiffstats
path: root/third_party/rust/clap/examples/cargo-example.rs
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/clap/examples/cargo-example.rs')
-rw-r--r--third_party/rust/clap/examples/cargo-example.rs23
1 files changed, 23 insertions, 0 deletions
diff --git a/third_party/rust/clap/examples/cargo-example.rs b/third_party/rust/clap/examples/cargo-example.rs
new file mode 100644
index 0000000000..149bf59918
--- /dev/null
+++ b/third_party/rust/clap/examples/cargo-example.rs
@@ -0,0 +1,23 @@
+// Note: this requires the `cargo` feature
+
+fn main() {
+ let cmd = clap::Command::new("cargo")
+ .bin_name("cargo")
+ .subcommand_required(true)
+ .subcommand(
+ clap::command!("example").arg(
+ clap::arg!(--"manifest-path" <PATH>)
+ .required(false)
+ .allow_invalid_utf8(true),
+ ),
+ );
+ let matches = cmd.get_matches();
+ let matches = match matches.subcommand() {
+ Some(("example", matches)) => matches,
+ _ => unreachable!("clap should ensure we don't get here"),
+ };
+ let manifest_path = matches
+ .value_of_os("manifest-path")
+ .map(std::path::PathBuf::from);
+ println!("{:?}", manifest_path);
+}