vector/
completion.rs

1#![allow(missing_docs)]
2use clap::{CommandFactory, Parser};
3use clap_complete::{Shell, generate};
4use std::io;
5
6use crate::cli::Opts as RootCli;
7
8#[derive(Parser, Debug, Clone)]
9#[command(rename_all = "kebab-case")]
10pub struct Opts {
11    /// Shell to generate completion for
12    #[clap(value_enum)]
13    shell: Shell,
14}
15
16pub fn cmd(opts: &Opts) -> exitcode::ExitCode {
17    let mut cmd = RootCli::command();
18    let bin_name = cmd.get_name().to_string();
19
20    generate(opts.shell, &mut cmd, bin_name, &mut io::stdout());
21
22    exitcode::OK
23}