Skip to main content

## Args

# Trait Args

Source

    pub trait Args: Sized + FromArgMatches {
        // Required methods
        fn augment_args(cmd: Command) -> Command;
        fn augment_args_for_update(cmd: Command) -> Command;

        // Provided method
        fn group_id() -> Option<Id> { ... }
    }

Expand description

Parse a set of arguments into a user-defined container.

Implementing this trait lets a parent container delegate argument parsing behavior to `Self`. with:

- `#[command(flatten)] args: ChildArgs`: Attribute can only be used with struct fields that impl `Args`.
- `Variant(ChildArgs)`: No attribute is used with enum variants that impl `Args`.

NOTE: Deriving requires the `derive` feature flag

## Required Methods§

Source

#### fn augment_args(cmd: Command) -> Command

Append to `Command` so it can instantiate `Self` via `FromArgMatches::from_arg_matches_mut`

This is used to implement `#[command(flatten)]`

See also `CommandFactory::command`.

Source

#### fn augment_args_for_update(cmd: Command) -> Command

Append to `Command` so it can instantiate `self` via `FromArgMatches::update_from_arg_matches_mut`

This is used to implement `#[command(flatten)]`

See also `CommandFactory::command_for_update`.

## Provided Methods§

Source

#### fn group_id() -> Option<Id>

Report the `ArgGroup::id` for this set of arguments

## Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

## Implementations on Foreign Types§

Source§

### impl Args for ()

Source§

#### fn augment_args(cmd: Command) -> Command

Source§

#### fn augment_args_for_update(cmd: Command) -> Command

Source§

### impl<T> Args for Box<T>
where T: Args,

Source§

#### fn augment_args(cmd: Command) -> Command

Source§

#### fn augment_args_for_update(cmd: Command) -> Command

## Implementors§