]> git.sesse.net Git - bcachefs-tools-debian/blob - rust-src/src/cmd_completions.rs
convert main() from C to Rust
[bcachefs-tools-debian] / rust-src / src / cmd_completions.rs
1 use clap::{Command, CommandFactory, Parser};
2 use clap_complete::{generate, Generator, Shell};
3 use std::io;
4
5 /// Generate shell completions
6 #[derive(clap::Parser, Debug)]
7 pub struct Cli {
8     shell: Shell,
9 }
10
11 fn print_completions<G: Generator>(gen: G, cmd: &mut Command) {
12     generate(gen, cmd, cmd.get_name().to_string(), &mut io::stdout());
13 }
14
15 pub fn cmd_completions(argv: Vec<String>) -> i32 {
16     let cli = Cli::parse_from(argv);
17     print_completions(cli.shell, &mut super::Cli::command());
18     0
19 }