Skip to main content

## ValueHint

# Enum ValueHint

Source

    #[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

1. 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
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.
§

### 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 another 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 ArgExt for ValueHint

Available on crate feature `unstable-ext` only.
Source§

### impl Clone for ValueHint

Source§

#### fn clone(&self) -> ValueHint

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

#### fn clone_from(&mut self, source: &Self)

Performs copy-assignment from `source`. Read more
Source§

### impl Copy for ValueHint

Source§

### impl Debug for ValueHint

Source§

#### fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more
Source§

### impl Default for ValueHint

Source§

#### fn default() -> ValueHint

Returns the “default value” for a type. Read more
Source§

### impl Eq for ValueHint

Source§

### impl FromStr for ValueHint

Source§

#### type Err = String

The associated error which can be returned from parsing.
Source§

#### fn from_str(s: &str) -> Result<ValueHint, <ValueHint as FromStr>::Err>

Parses a string `s` to return a value of this type. Read more
Source§

### impl Hash for ValueHint

Source§

#### fn hash<__H>(&self, state: &mut __H)
where __H: Hasher,

Feeds this value into the given `Hasher`. Read more
1.3.0 · Source§

#### fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given `Hasher`. Read more
Source§

### impl IntoResettable<ValueHint> for Option<ValueHint>

Source§

#### fn into_resettable(self) -> Resettable<ValueHint>

Convert to the intended resettable type
Source§

### impl IntoResettable<ValueHint> for ValueHint

Source§

#### fn into_resettable(self) -> Resettable<ValueHint>

Convert to the intended resettable type
Source§

### impl PartialEq for ValueHint

Source§

#### fn eq(&self, other: &ValueHint) -> bool

Equality operator `==`. Read more
1.0.0 (const: unstable) · Source§

#### fn ne(&self, other: &Rhs) -> bool

Inequality operator `!=`. Read more
Source§

### 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 UnsafeUnpin for ValueHint

§

### impl UnwindSafe for ValueHint

## Blanket Implementations§

Source§

### impl<T> Any for T
where T: 'static + ?Sized,

Source§

#### fn type_id(&self) -> TypeId

Gets the `TypeId` of `self`. Read more
Source§

### impl<T> Borrow<T> for T
where T: ?Sized,

Source§

#### fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

### impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

#### fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

### impl<T> CloneToUninit for T
where T: Clone,

Source§

#### unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (`clone_to_uninit`)
Performs copy-assignment from `self` to `dest`. Read more
Source§

### impl<T> From<T> for T

Source§

#### fn from(t: T) -> T

Returns the argument unchanged.

Source§

### impl<T, U> Into<U> for T
where U: From<T>,

Source§

#### fn into(self) -> U

Calls `U::from(self)`.

That is, this conversion is whatever the implementation of `From<T> for U` chooses to do.

Source§

### impl<T> ToOwned for T
where T: Clone,

Source§

#### type Owned = T

The resulting type after obtaining ownership.
Source§

#### fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

#### fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

### impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

#### type Error = Infallible

The type returned in the event of a conversion error.
Source§

#### fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

### impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

#### type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

#### fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.