From ccf3f65e4f962905cf5895a0b74e49a20181c581 Mon Sep 17 00:00:00 2001 From: Richard Maw Date: Fri, 19 Nov 2021 21:37:54 +0000 Subject: [PATCH] feat: Add example for multicall completion generation --- clap_generate/Cargo.toml | 2 +- clap_generate/examples/multicall.rs | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 1 deletion(-) create mode 100644 clap_generate/examples/multicall.rs diff --git a/clap_generate/Cargo.toml b/clap_generate/Cargo.toml index e13d57692aec..02ad986e6063 100644 --- a/clap_generate/Cargo.toml +++ b/clap_generate/Cargo.toml @@ -30,7 +30,7 @@ clap = { path = "../", version = "=3.0.0-beta.5", default-features = false, feat [dev-dependencies] pretty_assertions = "1.0" -clap = { path = "../", version = "=3.0.0-beta.5", default-features = false, features = ["std", "derive"] } +clap = { path = "../", version = "=3.0.0-beta.5", default-features = false, features = ["std", "derive", "unstable-multicall"] } [features] default = [] diff --git a/clap_generate/examples/multicall.rs b/clap_generate/examples/multicall.rs new file mode 100644 index 000000000000..48b2aaca7de7 --- /dev/null +++ b/clap_generate/examples/multicall.rs @@ -0,0 +1,18 @@ +use clap::{App, AppSettings}; +use clap_generate::{generate, generators::Bash}; +use std::io; + +fn main() { + let mut app = App::new(env!("CARGO_CRATE_NAME")) + .setting(AppSettings::Multicall) + .subcommand( + App::new("test") + .subcommand(App::new("config")) + .subcommand(App::new("generate-completions")), + ) + .subcommand(App::new("hello")); + for applet in app.get_subcommands_mut() { + let name = applet.get_name().to_owned(); + generate(Bash, applet, &name, &mut io::stdout()); + } +}