#[non_exhaustive]pub enum Shell {
Bash,
Carapace,
Elvish,
Fig,
Fish,
Nu,
PowerShell,
Zsh,
}
Expand description
A clap::ValueEnum
for available shell completions.
§Examples
§Derive
use clap::{Parser, Subcommand};
#[derive(Parser)]
struct Cli {
#[command(subcommand)]
command: Commands,
}
#[derive(Subcommand)]
enum Commands {
Completions {
#[arg(value_enum)]
shell: clap_complete_command::Shell,
},
}
§Builder
use clap::{Arg, Command};
fn build_cli() -> Command {
Command::new(env!("CARGO_PKG_NAME"))
.subcommand_required(true)
.subcommand(
Command::new("completions")
.about("Generate shell completions")
.arg(
Arg::new("shell")
.value_name("SHELL")
.help("The shell to generate the completions for")
.required(true)
.value_parser(
clap::builder::EnumValueParser::<clap_complete_command::Shell>::new(),
),
),
)
}
let matches = build_cli().get_matches();
match matches.subcommand() {
Some(("completions", sub_matches)) => {
if let Some(shell) = sub_matches.get_one::<clap_complete_command::Shell>("shell") {
// ...
}
}
_ => {
unreachable!("Exhausted list of subcommands and `subcommand_required` prevents `None`")
}
}
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
Bash
Bourne Again SHell (bash)
Carapace
Available on crate feature
carapace
only.Carapace spec
Elvish
Elvish shell
Fig
Available on crate feature
fig
only.Fig
Fish
Friendly Interactive SHell (fish)
Nu
Available on crate feature
nushell
only.NUshell (nu)
PowerShell
PowerShell
Zsh
Z SHell (zsh)
Implementations§
Source§impl Shell
impl Shell
Sourcepub fn generate(self, command: &mut Command, buffer: &mut dyn Write)
pub fn generate(self, command: &mut Command, buffer: &mut dyn Write)
See clap_complete::generate()
.
The command
’s bin name is used as the completion’s bin name.
If the command
’s bin name is not set, it will be set to the command
’s name.
Sourcepub fn generate_to<S>(
self,
command: &mut Command,
out_dir: S,
) -> Result<PathBuf, Error>
pub fn generate_to<S>( self, command: &mut Command, out_dir: S, ) -> Result<PathBuf, Error>
See clap_complete::generate_to()
.
The command
’s bin name is used as the completion’s bin name.
If the command
’s bin name is not set, it will be set to the command
’s name.
Trait Implementations§
Source§impl Generator for Shell
impl Generator for Shell
Source§fn file_name(&self, name: &str) -> String
fn file_name(&self, name: &str) -> String
Returns the file name that is created when this generator is called during compile time. Read more
Source§fn generate(&self, cmd: &Command, buf: &mut dyn Write)
fn generate(&self, cmd: &Command, buf: &mut dyn Write)
Generates output out of
clap::Command
. Read moreSource§fn try_generate(&self, cmd: &Command, buf: &mut dyn Write) -> Result<(), Error>
fn try_generate(&self, cmd: &Command, buf: &mut dyn Write) -> Result<(), Error>
Fallible version to generate output out of
clap::Command
. Read moreimpl Copy for Shell
Auto Trait Implementations§
impl Freeze for Shell
impl RefUnwindSafe for Shell
impl Send for Shell
impl Sync for Shell
impl Unpin for Shell
impl UnwindSafe for Shell
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more