Skip to main content

FlagMeta

Struct FlagMeta 

Source
pub struct FlagMeta<'a> { /* private fields */ }
Expand description

What a flag knows about itself beyond how it parses.

Read it through the accessor methods. The fields are pub only because derived code builds this struct with a literal in the adopter’s crate; they are hidden from the docs because how they are laid out is not part of the API.

Implementations§

Source§

impl FlagMeta<'_>

Source

pub const EMPTY: FlagMeta<'static>

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

Source§

impl<'a> FlagMeta<'a>

Read access to every field, wherever it is stored.

Prefer these to the fields: a field can move between this struct and its cold extra half as tables are tuned for size, as 6.11.1 moved thirty-odd of them, and a getter keeps its name and type when that happens.

Source

pub const fn flag(&self) -> &'a Flag<'a>

Source

pub const fn builtin(&self) -> bool

A parser-supplied public entry point materialized in an exported spec.

It belongs in flag listings and completions, but not in the command synopsis where the runtime’s implicit help and version flags have never appeared.

Source

pub const fn help(&self) -> Option<&'a str>

Short help, shown by -h.

Source

pub const fn long_help(&self) -> Option<&'a str>

Long help, shown by --help.

Source

pub const fn value_name(&self) -> Option<&'a str>

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

Source

pub const fn env(&self) -> Option<&'a str>

Source

pub const fn default(&self) -> &'a [&'a str]

Source

pub const fn accepted_choices(&self) -> &'a [&'a str]

Canonical choices plus aliases accepted by the value type.

Source

pub const fn choices(&self) -> &'a [&'a str]

Source

pub const fn ignore_case(&self) -> bool

Source

pub const fn allow_unknown_choices(&self) -> bool

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

Source

pub const fn required(&self) -> bool

Source

pub const fn value_optional(&self) -> 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.

Source

pub const fn hide(&self) -> bool

Source

pub const fn hide_default_value(&self) -> bool

Source

pub const fn hide_env(&self) -> bool

Source

pub const fn hide_possible_values(&self) -> bool

Source

pub const fn hide_short_help(&self) -> bool

Source

pub const fn hide_long_help(&self) -> bool

Source

pub const fn count(&self) -> bool

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

Source

pub const fn complete( &self, ) -> 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.

Source

pub const fn repeatable(&self) -> bool

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

Source

pub const fn help_heading(&self) -> 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.

Source

pub const fn display_order(&self) -> Option<u32>

Explicit placement within its help section.

Source

pub const fn hidden_shorts(&self) -> &'a [u8] ⓘ

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

Source

pub const fn hidden_longs(&self) -> &'a [&'a str]

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

Source

pub const fn admonitions(&self) -> &'a [AdmonitionMeta<'a>]

Notes and warnings shown after the extended help text.

Source

pub const fn deprecated(&self) -> Option<&'a str>

Why this flag is deprecated, plus optional release milestones.

Source

pub const fn deprecated_warn_at(&self) -> Option<&'a str>

Source

pub const fn deprecated_remove_at(&self) -> Option<&'a str>

Source

pub const fn value_names(&self) -> &'a [&'a str]

Ordered placeholders for one fixed-arity occurrence.

Source

pub const fn env_fallback(&self) -> &'a [&'a str]

Source

pub const fn deprecated_env(&self) -> &'a [&'a str]

Source

pub const fn choice_aliases(&self) -> &'a [(&'a str, &'a str)]

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

Source

pub const fn choice_details(&self) -> &'a [ChoiceMeta<'a>]

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

Source

pub const fn validate(&self) -> Option<&'a str>

Portable expr expression evaluated for each raw value.

Source

pub const fn validate_error(&self) -> Option<&'a str>

Message reported when validation returns false.

Source

pub const fn hide_env_values(&self) -> bool

Source

pub const fn complete_type(&self) -> Option<&'a str>

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

Source

pub const fn var_min(&self) -> Option<u32>

Source

pub const fn var_max(&self) -> Option<u32>

Source

pub const fn value_var_min(&self) -> Option<u32>

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

Source

pub const fn value_var_max(&self) -> Option<u32>

Source

pub const fn overrides(&self) -> &'a [&'a str]

Flags this one displaces when both are given.

Source

pub const fn conflicts(&self) -> &'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.

Source

pub const fn delimiter(&self) -> 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.

Source

pub const fn exclusive(&self) -> bool

Whether this flag must be given on its own.

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

Source

pub const fn requires(&self) -> &'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.

Source

pub const fn requires_if(&self) -> &'a [RequiresIf<'a>]

Value-triggered requirements declared by this flag.

Source

pub const fn default_if(&self) -> &'a [DefaultIf<'a>]

Defaults that apply when another flag is given.

Source

pub const fn required_if(&self) -> &'a [&'a str]

Flags that make this one necessary.

Source

pub const fn required_if_eq(&self) -> &'a [RequiredIfEq<'a>]

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

Source

pub const fn required_if_eq_all(&self) -> &'a [RequiredIfEq<'a>]

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

Source

pub const fn required_unless(&self) -> &'a [&'a str]

Flags that make this one unnecessary.

Source

pub const fn required_unless_all(&self) -> &'a [&'a str]

All selectors must be present to make this unnecessary.

Source

pub const fn surface(&self) -> Option<&'a str>

Named audience or compatibility surface this flag belongs to.

Source

pub const fn available_if(&self) -> &'a [&'a str]

Descriptive availability conditions; they do not affect parsing.

Source

pub const fn effect(&self) -> Option<Effect>

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 = !

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

fn try_from(value: U) -> Result<T, !>

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.