pub trait FromArgMatches: Sized {
// Required methods
fn from_arg_matches(matches: &ArgMatches) -> Result<Self, Error>;
fn update_from_arg_matches(
&mut self,
matches: &ArgMatches,
) -> Result<(), Error>;
// Provided methods
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§
Sourcefn from_arg_matches(matches: &ArgMatches) -> Result<Self, Error>
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_flag("debug"),
}
}
}Sourcefn update_from_arg_matches(&mut self, matches: &ArgMatches) -> Result<(), Error>
fn update_from_arg_matches(&mut self, matches: &ArgMatches) -> Result<(), Error>
Assign values from ArgMatches to self.
Provided Methods§
Sourcefn from_arg_matches_mut(matches: &mut ArgMatches) -> Result<Self, Error>
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_flag("debug"),
}
}
}Sourcefn update_from_arg_matches_mut(
&mut self,
matches: &mut ArgMatches,
) -> Result<(), Error>
fn update_from_arg_matches_mut( &mut self, matches: &mut ArgMatches, ) -> Result<(), Error>
Assign values from ArgMatches to self.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.