Trait FromArgMatches
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§
fn 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"),
}
}
}fn 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§
fn 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"),
}
}
}fn 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.