aboutsummaryrefslogtreecommitdiff
path: root/vendor/clap_builder/src/builder/value_hint.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/clap_builder/src/builder/value_hint.rs')
-rw-r--r--vendor/clap_builder/src/builder/value_hint.rs90
1 files changed, 0 insertions, 90 deletions
diff --git a/vendor/clap_builder/src/builder/value_hint.rs b/vendor/clap_builder/src/builder/value_hint.rs
deleted file mode 100644
index 38fa862..0000000
--- a/vendor/clap_builder/src/builder/value_hint.rs
+++ /dev/null
@@ -1,90 +0,0 @@
-use std::str::FromStr;
-
-/// Provide shell with hint on how to complete an argument.
-///
-/// See [Arg::value_hint][crate::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 | fish[^1]|
-/// | ---------------------- | --- | ------- |
-/// | `AnyPath` | Yes | Yes |
-/// | `FilePath` | Yes | Yes |
-/// | `DirPath` | Yes | Yes |
-/// | `ExecutablePath` | Yes | Partial |
-/// | `CommandName` | Yes | Yes |
-/// | `CommandString` | Yes | Partial |
-/// | `CommandWithArguments` | Yes | |
-/// | `Username` | Yes | Yes |
-/// | `Hostname` | Yes | Yes |
-/// | `Url` | Yes | |
-/// | `EmailAddress` | Yes | |
-///
-/// [^1]: fish completions currently only support named arguments (e.g. -o or --opt), not
-/// positional arguments.
-#[derive(Debug, Default, PartialEq, Eq, Hash, Copy, Clone)]
-#[non_exhaustive]
-pub enum ValueHint {
- /// Default value if hint is not specified. Follows shell default behavior, which is usually
- /// auto-completing filenames.
- #[default]
- Unknown,
- /// None of the hints below apply. Disables shell completion for this argument.
- Other,
- /// Any existing path.
- AnyPath,
- /// Path to a file.
- FilePath,
- /// Path to a directory.
- DirPath,
- /// Path to an executable file.
- ExecutablePath,
- /// Name of a command, without arguments. May be relative to PATH, or full path to executable.
- CommandName,
- /// A single string containing a command and its arguments.
- CommandString,
- /// 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.
- ///
- /// [`Command::trailing_var_arg(true)`]: crate::Command::trailing_var_arg
- /// [`.num_args(1..)`]: crate::Arg::num_args()
- CommandWithArguments,
- /// Name of a local operating system user.
- Username,
- /// Host name of a computer.
- /// Shells usually parse `/etc/hosts` and `.ssh/known_hosts` to complete hostnames.
- Hostname,
- /// Complete web address.
- Url,
- /// Email address.
- EmailAddress,
-}
-
-impl FromStr for ValueHint {
- type Err = String;
- fn from_str(s: &str) -> Result<Self, <Self as FromStr>::Err> {
- Ok(match &*s.to_ascii_lowercase() {
- "unknown" => ValueHint::Unknown,
- "other" => ValueHint::Other,
- "anypath" => ValueHint::AnyPath,
- "filepath" => ValueHint::FilePath,
- "dirpath" => ValueHint::DirPath,
- "executablepath" => ValueHint::ExecutablePath,
- "commandname" => ValueHint::CommandName,
- "commandstring" => ValueHint::CommandString,
- "commandwitharguments" => ValueHint::CommandWithArguments,
- "username" => ValueHint::Username,
- "hostname" => ValueHint::Hostname,
- "url" => ValueHint::Url,
- "emailaddress" => ValueHint::EmailAddress,
- _ => return Err(format!("unknown ValueHint: `{s}`")),
- })
- }
-}