# Trait clap::FromArgMatches

source · [−]

    pub trait FromArgMatches: Sized {
        fn from_arg_matches(matches: &ArgMatches) -> Result<Self, Error>;
        fn update_from_arg_matches(
            &mut self,
            matches: &ArgMatches
        ) -> Result<(), Error>;

        fn from_arg_matches_mut(matches: &mut ArgMatches) -> Result<Self, Error> { ... }
        fn update_from_arg_matches_mut(
            &mut self,
            matches: &mut ArgMatches
        ) -> Result<(), Error> { ... }
    }

Expand description

Converts an instance of `ArgMatches` to a user-defined container.

Derived as part of `Parser`, `Args`, and `Subcommand`.

## Required Methods

source

#### fn from_arg_matches(matches: &ArgMatches) -> Result<Self, Error>

Instantiate `Self` from `ArgMatches`, parsing the arguments as needed.

Motivation: If our application had two CLI options, `--name <STRING>` and the flag `--debug`, we may create a struct as follows:

    struct Context {
       name: String,
       debug: bool
    }

We then need to convert the `ArgMatches` that `clap` generated into our struct. `from_arg_matches` serves as the equivalent of:

    impl From<ArgMatches> for Context {
      fn from(m: ArgMatches) -> Self {
          Context {
              name: m.get_one::<String>("name").unwrap().clone(),
              debug: *m.get_one::<bool>("debug").expect("defaulted by clap"),
          }
      }
    }

source

#### fn update_from_arg_matches(&mut self, matches: &ArgMatches) -> Result<(), Error>

Assign values from `ArgMatches` to `self`.

## Provided Methods

source

#### fn from_arg_matches_mut(matches: &mut ArgMatches) -> Result<Self, Error>

Instantiate `Self` from `ArgMatches`, parsing the arguments as needed.

Motivation: If our application had two CLI options, `--name <STRING>` and the flag `--debug`, we may create a struct as follows:

    struct Context {
       name: String,
       debug: bool
    }

We then need to convert the `ArgMatches` that `clap` generated into our struct. `from_arg_matches_mut` serves as the equivalent of:

    impl From<ArgMatches> for Context {
      fn from(m: ArgMatches) -> Self {
          Context {
              name: m.get_one::<String>("name").unwrap().to_string(),
              debug: *m.get_one::<bool>("debug").expect("defaulted by clap"),
          }
      }
    }

source

#### fn update_from_arg_matches_mut(
&mut self,
matches: &mut ArgMatches
) -> Result<(), Error>

Assign values from `ArgMatches` to `self`.

## Implementations on Foreign Types

source

### impl<T: FromArgMatches> FromArgMatches for Box<T>

source

#### fn from_arg_matches(matches: &ArgMatches) -> Result<Self, Error>

source

#### fn from_arg_matches_mut(matches: &mut ArgMatches) -> Result<Self, Error>

source

#### fn update_from_arg_matches(&mut self, matches: &ArgMatches) -> Result<(), Error>

source

#### fn update_from_arg_matches_mut(
&mut self,
matches: &mut ArgMatches
) -> Result<(), Error>

## Implementors