pub trait Generator {
    // Required methods
    fn file_name(&self, name: &str) -> String;
    fn generate(&self, cmd: &Command, buf: &mut dyn Write);
}
Expand description

Generator trait which can be used to write generators

Required Methods§

source

fn file_name(&self, name: &str) -> String

Returns the file name that is created when this generator is called during compile time.

§Panics

May panic when called outside of the context of generate or generate_to

§Examples
use clap_complete::Generator;

pub struct Fish;

impl Generator for Fish {
    fn file_name(&self, name: &str) -> String {
        format!("{name}.fish")
    }
}
source

fn generate(&self, cmd: &Command, buf: &mut dyn Write)

Generates output out of [clap::Command].

§Panics

May panic when called outside of the context of generate or generate_to

§Examples

The following example generator displays the [clap::Command] as if it is printed using std::println.

use std::{io::Write, fmt::write};
use clap::Command;
use clap_complete::Generator;

pub struct ClapDebug;

impl Generator for ClapDebug {
    fn generate(&self, cmd: &Command, buf: &mut dyn Write) {
        write!(buf, "{cmd}").unwrap();
    }
}

Implementors§