Trait clap_generate::Generator [−][src]
pub trait Generator { fn file_name(name: &str) -> String; fn generate(app: &App<'_>, buf: &mut dyn Write); fn all_subcommands(app: &App<'_>) -> Vec<(String, String)> { ... } fn find_subcommand_with_path<'help, 'app>(
p: &'app App<'help>,
path: Vec<&str>
) -> &'app App<'help> { ... } fn subcommands(p: &App<'_>) -> Vec<(String, String)> { ... } fn shorts_and_visible_aliases(p: &App<'_>) -> Vec<char> { ... } fn longs_and_visible_aliases(p: &App<'_>) -> Vec<String> { ... } fn flags<'help>(p: &App<'help>) -> Vec<Arg<'help>> { ... } }
Expand description
Generator trait which can be used to write generators
Required methods
Returns the file name that is created when this generator is called during compile time.
Examples
use clap_generate::Generator; pub struct Fish; impl Generator for Fish { fn file_name(name: &str) -> String { format!("{}.fish", name) } }
Generates output out of clap::App
.
Examples
The following example generator displays the clap::App
as if it is printed using std::println
.
use std::{io::Write, fmt::write}; use clap::App; use clap_generate::Generator; pub struct ClapDebug; impl Generator for ClapDebug { fn generate(app: &App, buf: &mut dyn Write) { write!(buf, "{}", app).unwrap(); } }
Provided methods
Gets all subcommands including child subcommands in the form of ("name", "bin_name")
.
Subcommand rustup toolchain install
would be converted to
("install", "rustup toolchain install")
.
Gets subcommands of clap::App
in the form of ("name", "bin_name")
.
Subcommand rustup toolchain install
would be converted to
("install", "rustup toolchain install")
.
fn shorts_and_visible_aliases(p: &App<'_>) -> Vec<char>
fn shorts_and_visible_aliases(p: &App<'_>) -> Vec<char>
Gets all the short options, their visible aliases and flags of a clap::App
.
Includes h
and V
depending on the clap::AppSettings
.
fn longs_and_visible_aliases(p: &App<'_>) -> Vec<String>
fn longs_and_visible_aliases(p: &App<'_>) -> Vec<String>
Gets all the long options, their visible aliases and flags of a clap::App
.
Includes help
and version
depending on the clap::AppSettings
.