#[non_exhaustive]pub enum ValueHint {
Show 13 variants
Unknown,
Other,
AnyPath,
FilePath,
DirPath,
ExecutablePath,
CommandName,
CommandString,
CommandWithArguments,
Username,
Hostname,
Url,
EmailAddress,
}
Expand description
Provide shell with hint on how to complete an argument.
See Arg::value_hint
to set this on an argument.
See the clap_complete
crate for completion script generation.
Overview of which hints are supported by which shell:
Hint | zsh | fish1 | dynamic |
---|---|---|---|
AnyPath | Yes | Yes | Yes |
FilePath | Yes | Yes | Yes |
DirPath | Yes | Yes | Yes |
ExecutablePath | Yes | Partial | Yes |
CommandName | Yes | Yes | No |
CommandString | Yes | Partial | No |
CommandWithArguments | Yes | No | |
Username | Yes | Yes | No |
Hostname | Yes | Yes | No |
Url | Yes | No | |
EmailAddress | Yes | No |
fish completions currently only support named arguments (e.g. -o or –opt), not positional arguments. ↩
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
Unknown
Default value if hint is not specified. Follows shell default behavior, which is usually auto-completing filenames.
Other
None of the hints below apply. Disables shell completion for this argument.
AnyPath
Any existing path.
FilePath
Path to a file.
DirPath
Path to a directory.
ExecutablePath
Path to an executable file.
CommandName
Name of a command, without arguments. May be relative to PATH, or full path to executable.
CommandString
A single string containing a command and its arguments.
CommandWithArguments
Capture the remaining arguments as a command name and arguments for that command. This is
common when writing shell wrappers that execute anther command, for example sudo
or env
.
This hint is special, the argument must be a positional argument and have
.num_args(1..)
and Command must use Command::trailing_var_arg(true)
. The result is that the
command line my_app ls -la /
will be parsed as ["ls", "-la", "/"]
and clap won’t try to
parse the -la
argument itself.
Username
Name of a local operating system user.
Hostname
Host name of a computer.
Shells usually parse /etc/hosts
and .ssh/known_hosts
to complete hostnames.
Url
Complete web address.
EmailAddress
Email address.
Trait Implementations§
Source§impl IntoResettable<ValueHint> for Option<ValueHint>
impl IntoResettable<ValueHint> for Option<ValueHint>
Source§fn into_resettable(self) -> Resettable<ValueHint>
fn into_resettable(self) -> Resettable<ValueHint>
Source§impl IntoResettable<ValueHint> for ValueHint
impl IntoResettable<ValueHint> for ValueHint
Source§fn into_resettable(self) -> Resettable<ValueHint>
fn into_resettable(self) -> Resettable<ValueHint>
impl Copy for ValueHint
impl Eq for ValueHint
impl StructuralPartialEq for ValueHint
Auto Trait Implementations§
impl Freeze for ValueHint
impl RefUnwindSafe for ValueHint
impl Send for ValueHint
impl Sync for ValueHint
impl Unpin for ValueHint
impl UnwindSafe for ValueHint
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 1 byte
Size for each variant:
Unknown
: 0 bytesOther
: 0 bytesAnyPath
: 0 bytesFilePath
: 0 bytesDirPath
: 0 bytesExecutablePath
: 0 bytesCommandName
: 0 bytesCommandString
: 0 bytesCommandWithArguments
: 0 bytesUsername
: 0 bytesHostname
: 0 bytesUrl
: 0 bytesEmailAddress
: 0 bytes