Skip to main content

FlagMeta

Struct FlagMeta 

Source
pub struct FlagMeta<'a> {
Show 54 fields pub flag: &'a Flag<'a>, pub display_order: Option<usize>, pub hidden_shorts: &'a [u8], pub hidden_longs: &'a [&'a str], pub help: Option<&'a str>, pub long_help: Option<&'a str>, pub deprecated: Option<&'a str>, pub deprecated_warn_at: Option<&'a str>, pub deprecated_remove_at: Option<&'a str>, pub value_name: Option<&'a str>, pub value_names: &'a [&'a str], pub env: Option<&'a str>, pub env_fallback: &'a [&'a str], pub deprecated_env: &'a [&'a str], pub default: &'a [&'a str], pub accepted_choices: &'a [&'a str], pub choices: &'a [&'a str], pub choice_aliases: &'a [(&'a str, &'a str)], pub choice_details: &'a [ChoiceMeta<'a>], pub ignore_case: bool, pub allow_unknown_choices: bool, pub validate: Option<&'a str>, pub validate_error: Option<&'a str>, pub required: bool, pub value_optional: bool, pub hide: bool, pub hide_default_value: bool, pub hide_env: bool, pub hide_env_values: bool, pub hide_possible_values: bool, pub hide_short_help: bool, pub hide_long_help: bool, pub count: bool, pub complete: Option<fn(&CompleteCtx<'_>) -> Vec<Candidate<'static>>>, pub complete_type: Option<&'a str>, pub repeatable: bool, pub var_min: Option<usize>, pub var_max: Option<usize>, pub value_var_min: Option<usize>, pub value_var_max: Option<usize>, pub overrides: &'a [&'a str], pub conflicts: &'a [&'a str], pub delimiter: Option<char>, pub exclusive: bool, pub requires: &'a [&'a str], pub requires_if: &'a [RequiresIf<'a>], pub default_if: &'a [DefaultIf<'a>], pub required_if: &'a [&'a str], pub required_if_eq: &'a [RequiredIfEq<'a>], pub required_if_eq_all: &'a [RequiredIfEq<'a>], pub required_unless: &'a [&'a str], pub required_unless_all: &'a [&'a str], pub help_heading: Option<&'a str>, pub effect: Option<Effect>,
}
Expand description

What a flag knows about itself beyond how it parses.

Fields§

§flag: &'a Flag<'a>§display_order: Option<usize>

Explicit placement within its help section.

§hidden_shorts: &'a [u8]

Short forms accepted by the parser but omitted from help and completion.

§hidden_longs: &'a [&'a str]

Long forms accepted by the parser but omitted from help and completion.

§help: Option<&'a str>

Short help, shown by -h.

§long_help: Option<&'a str>

Long help, shown by --help.

§deprecated: Option<&'a str>

Why this flag is deprecated, plus optional release milestones.

§deprecated_warn_at: Option<&'a str>§deprecated_remove_at: Option<&'a str>§value_name: Option<&'a str>

The placeholder for the flag’s value, such as n in --jobs <n>.

§value_names: &'a [&'a str]

Ordered placeholders for one fixed-arity occurrence.

§env: Option<&'a str>§env_fallback: &'a [&'a str]§deprecated_env: &'a [&'a str]§default: &'a [&'a str]§accepted_choices: &'a [&'a str]

Canonical choices plus aliases accepted by the value type.

§choices: &'a [&'a str]§choice_aliases: &'a [(&'a str, &'a str)]

Canonical-to-alias pairs used when emitting a lossless spec.

§choice_details: &'a [ChoiceMeta<'a>]

Per-canonical presentation metadata used when emitting a lossless spec.

§ignore_case: bool§allow_unknown_choices: bool

Accept values outside choices while retaining the list for help and completion.

§validate: Option<&'a str>

Portable expr expression evaluated for each raw value.

§validate_error: Option<&'a str>

Message reported when validation returns false.

§required: bool§value_optional: bool

Whether the flag’s value may be left off, as in --bump or --bump 5.

Help only, and deliberately: usage-lib’s parser refuses a bare --bump exactly as it refuses a bare --port, so this changes no binding — it changes the brackets, [BUMP] rather than <BUMP>, which is what a spec’s arg "[BUMP]" required=#false says. In FlagMeta and not in Flag for that reason: a parse never reads it.

§hide: bool§hide_default_value: bool§hide_env: bool§hide_env_values: bool§hide_possible_values: bool§hide_short_help: bool§hide_long_help: bool§count: bool

Whether repetition is counted rather than collected, as in -vvv.

§complete: Option<fn(&CompleteCtx<'_>) -> Vec<Candidate<'static>>>

What answers for this flag’s value when a shell asks.

The Rust counterpart of a spec’s run=: it is written into the emitted KDL as a command that asks this binary, so a spec stays complete for every other consumer while the binary answers itself.

§complete_type: Option<&'a str>

A built-in completion class such as path or dir.

§repeatable: bool

Whether the flag may be given more than once. Distinct from Flag::variadic, which is one occurrence taking several values.

§var_min: Option<usize>§var_max: Option<usize>§value_var_min: Option<usize>

Bounds on values consumed by one occurrence, distinct from the flag-level occurrence bounds above.

§value_var_max: Option<usize>§overrides: &'a [&'a str]

Flags this one displaces when both are given.

§conflicts: &'a [&'a str]

Flags that cannot be given alongside this one.

Where overrides resolves a collision by letting the last flag win, this reports it: the combination has no meaning, so honouring one side silently would hide a mistake.

§delimiter: Option<char>

The character one word is split on to make several values, as clap’s value_delimiter does. Only ever set where several values can land.

§exclusive: bool

Whether this flag must be given on its own.

The whole-command form of conflicts: everything the command declares counts, positionals included.

§requires: &'a [&'a str]

Flags that must also be given when this one is.

The positive form of conflicts, and the mirror image of required_if: the same rule written on the flag that imposes it rather than on the flag it lands on.

§requires_if: &'a [RequiresIf<'a>]

Value-triggered requirements declared by this flag.

§default_if: &'a [DefaultIf<'a>]

Defaults that apply when another flag is given.

§required_if: &'a [&'a str]

Flags that make this one necessary.

§required_if_eq: &'a [RequiredIfEq<'a>]

Selector/value conditions, any one of which makes this required.

§required_if_eq_all: &'a [RequiredIfEq<'a>]

Selector/value conditions which must all match to make this required.

§required_unless: &'a [&'a str]

Flags that make this one unnecessary.

§required_unless_all: &'a [&'a str]

All selectors must be present to make this unnecessary.

§help_heading: Option<&'a str>

Heading to list this flag under in help output. Presentational: it groups a long flag list into sections and changes nothing about parsing.

§effect: Option<Effect>

Implementations§

Source§

impl FlagMeta<'_>

Source

pub const EMPTY: FlagMeta<'static>

Metadata for a flag with nothing declared, for struct update syntax.

Trait Implementations§

Source§

impl<'a> Clone for FlagMeta<'a>

Source§

fn clone(&self) -> FlagMeta<'a>

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<'a> Copy for FlagMeta<'a>

Source§

impl<'a> Debug for FlagMeta<'a>

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'a> Freeze for FlagMeta<'a>

§

impl<'a> RefUnwindSafe for FlagMeta<'a>

§

impl<'a> Send for FlagMeta<'a>

§

impl<'a> Sync for FlagMeta<'a>

§

impl<'a> Unpin for FlagMeta<'a>

§

impl<'a> UnsafeUnpin for FlagMeta<'a>

§

impl<'a> UnwindSafe for FlagMeta<'a>

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.