[][src]Trait clap_generate::generators::Generator

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<'help>(p: &App<'help>) -> Vec<char> { ... }
fn longs<'help>(p: &App<'help>) -> Vec<String> { ... }
fn flags<'help>(p: &App<'help>) -> Vec<Arg<'help>> { ... } }

Generator trait which can be used to write generators

Required methods

fn file_name(name: &str) -> String

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)
    }
}

fn generate(app: &App<'_>, buf: &mut dyn Write)

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();
    }
}
Loading content...

Provided methods

fn all_subcommands(app: &App<'_>) -> Vec<(String, String)>

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

fn find_subcommand_with_path<'help, 'app>(
    p: &'app App<'help>,
    path: Vec<&str>
) -> &'app App<'help>

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

NOTE: path should not contain the root bin_name.

fn subcommands(p: &App<'_>) -> Vec<(String, String)>

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<'help>(p: &App<'help>) -> 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<'help>(p: &App<'help>) -> Vec<String>

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

fn flags<'help>(p: &App<'help>) -> Vec<Arg<'help>>

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

Loading content...

Implementors

impl Generator for Bash[src]

impl Generator for Elvish[src]

impl Generator for Fish[src]

impl Generator for PowerShell[src]

impl Generator for Zsh[src]

Loading content...