[go: up one dir, main page]

Struct clap::ArgMatches

source ·
pub struct ArgMatches<'n, 'a> { /* private fields */ }
Expand description

Used to get information about the arguments that where supplied to the program at runtime by the user. To get a new instance of this struct you use .get_matches() of the App struct.

§Examples

let matches = App::new("MyApp")
// adding of arguments and configuration goes here...
                    .get_matches();
// if you had an argument named "output" that takes a value
if let Some(o) = matches.value_of("output") {
    println!("Value for output: {}", o);
}

// If you have a required argument you can call .unwrap() because the program will exit long
// before this point if the user didn't specify it at runtime.
println!("Config file: {}", matches.value_of("config").unwrap());

// You can check the presence of an argument
if matches.is_present("debug") {
    // Another way to check if an argument was present, or if it occurred multiple times is to
    // use occurrences_of() which returns 0 if an argument isn't found at runtime, or the
    // number of times that it occurred, if it was. To allow an argument to appear more than
    // once, you must use the .multiple(true) method, otherwise it will only return 1 or 0.
    if matches.occurrences_of("debug") > 2 {
        println!("Debug mode is REALLY on");
    } else {
        println!("Debug mode kind of on");
    }
}

// You can get the sub-matches of a particular subcommand (in this case "test")
// If "test" had it's own "-l" flag you could check for it's presence accordingly
if let Some(ref matches) = matches.subcommand_matches("test") {
    if matches.is_present("list") {
        println!("Printing testing lists...");
    } else {
        println!("Not printing testing lists...");
    }
}

Implementations§

source§

impl<'n, 'a> ArgMatches<'n, 'a>

source

pub fn value_of(&self, name: &str) -> Option<&str>

Gets the value of a specific option or positional argument (i.e. an argument that takes an additional value at runtime). If the option wasn’t present at runtime it returns None.

NOTE: If getting a value for an option or positional argument that allows multiples, prefer values_of() as value_of() will only return the first value.

§Examples
if let Some(o) = matches.value_of("output") {
       println!("Value for output: {}", o);
}
source

pub fn values_of(&'a self, name: &str) -> Option<Vec<&'a str>>

Gets the values of a specific option or positional argument in a vector (i.e. an argument that takes multiple values at runtime). If the option wasn’t present at runtime it returns None

§Examples
// If the program had option "-c" that took a value and was run
// via "myapp -o some -o other -o file"
// values_of() would return a [&str; 3] ("some", "other", "file")
if let Some(os) = matches.values_of("output") {
       for o in os {
           println!("A value for output: {}", o);
       }
}
source

pub fn is_present(&self, name: &str) -> bool

Returns if an argument was present at runtime.

§Examples
if matches.is_present("output") {
       println!("The output argument was used!");
}
source

pub fn occurrences_of(&self, name: &str) -> u8

Returns the number of occurrences of an option, flag, or positional argument at runtime. If an argument isn’t present it will return 0. Can be used on arguments which don’t allow multiple occurrences, but will obviously only return 0 or 1.

§Examples
if matches.occurrences_of("debug") > 1 {
    println!("Debug mode is REALLY on");
} else {
    println!("Debug mode kind of on");
}
source

pub fn subcommand_matches<'na>( &self, name: &'na str, ) -> Option<&ArgMatches<'_, '_>>

Returns the ArgMatches for a particular subcommand or None if the subcommand wasn’t present at runtime.

§Examples
if let Some(matches) = app_matches.subcommand_matches("test") {
    // Use matches as normal
}
source

pub fn subcommand_name(&self) -> Option<&str>

Returns the name of the subcommand used of the parent App, or None if one wasn’t found

NOTE: Only a single subcommand may be present per App at runtime, does NOT check for the name of sub-subcommand’s names

§Examples
match app_matches.subcommand_name() {
    Some("test")   => {}, // test was used
    Some("config") => {}, // config was used
    _              => {}, // Either no subcommand or one not tested for...
}
source

pub fn subcommand(&self) -> (&str, Option<&ArgMatches<'_, '_>>)

Returns the name and ArgMatches of the subcommand used at runtime or (“”, None) if one wasn’t found.

§Examples
match app_matches.subcommand() {
    ("test", Some(matches))   => {}, // test was used
    ("config", Some(matches)) => {}, // config was used
    _                         => {}, // Either no subcommand or one not tested for...
}
source

pub fn usage(&self) -> &str

Returns a string slice of the usage statement for the App (or SubCommand)

§Examples
println!("{}",app_matches.usage());

Trait Implementations§

source§

impl<'n, 'a> Debug for ArgMatches<'n, 'a>

source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more

Auto Trait Implementations§

§

impl<'n, 'a> Freeze for ArgMatches<'n, 'a>

§

impl<'n, 'a> RefUnwindSafe for ArgMatches<'n, 'a>

§

impl<'n, 'a> Send for ArgMatches<'n, 'a>

§

impl<'n, 'a> Sync for ArgMatches<'n, 'a>

§

impl<'n, 'a> Unpin for ArgMatches<'n, 'a>

§

impl<'n, 'a> UnwindSafe for ArgMatches<'n, 'a>

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.