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").

Finds the subcommand clap::App from the given clap::App with the given path.

NOTE: path should not contain the root bin_name.

Gets subcommands of clap::App in the form of ("name", "bin_name").

Subcommand rustup toolchain install would be converted to ("install", "rustup toolchain install").

Gets all the short options, their visible aliases and flags of a clap::App. Includes h and V depending on the clap::AppSettings.

Gets all the long options, their visible aliases and flags of a clap::App. Includes help and version depending on the clap::AppSettings.

Gets all the flags of a clap::App. Includes help and version depending on the clap::AppSettings.

Implementors