Trait clap::FromArgMatches
source · pub trait FromArgMatches: Sized {
// Required methods
fn from_arg_matches(
matches: &ArgMatches
) -> Result<Self, Error<RichFormatter>>;
fn update_from_arg_matches(
&mut self,
matches: &ArgMatches
) -> Result<(), Error<RichFormatter>>;
// Provided methods
fn from_arg_matches_mut(
matches: &mut ArgMatches
) -> Result<Self, Error<RichFormatter>> { ... }
fn update_from_arg_matches_mut(
&mut self,
matches: &mut ArgMatches
) -> Result<(), Error<RichFormatter>> { ... }
}
Expand description
Converts an instance of ArgMatches
to a user-defined container.
Derived as part of Parser
, Args
, and Subcommand
.
Required Methods§
sourcefn from_arg_matches(matches: &ArgMatches) -> Result<Self, Error<RichFormatter>>
fn from_arg_matches(matches: &ArgMatches) -> Result<Self, Error<RichFormatter>>
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_flag("debug"),
}
}
}
sourcefn update_from_arg_matches(
&mut self,
matches: &ArgMatches
) -> Result<(), Error<RichFormatter>>
fn update_from_arg_matches( &mut self, matches: &ArgMatches ) -> Result<(), Error<RichFormatter>>
Assign values from ArgMatches
to self
.
Provided Methods§
sourcefn from_arg_matches_mut(
matches: &mut ArgMatches
) -> Result<Self, Error<RichFormatter>>
fn from_arg_matches_mut( matches: &mut ArgMatches ) -> Result<Self, Error<RichFormatter>>
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_flag("debug"),
}
}
}
sourcefn update_from_arg_matches_mut(
&mut self,
matches: &mut ArgMatches
) -> Result<(), Error<RichFormatter>>
fn update_from_arg_matches_mut( &mut self, matches: &mut ArgMatches ) -> Result<(), Error<RichFormatter>>
Assign values from ArgMatches
to self
.