Struct ArgParser

Source
pub struct ArgParser { /* private fields */ }
Expand description

This type represents the state and methods for parsing arguments. A new parser must be created for every set of arguments you want to parse.

Implementations§

Source§

impl ArgParser

Source

pub fn new(name: String) -> ArgParser

Constructs a new ArgParser, given the name of the program that you want to be printed in help messages

Source

pub fn add_opt( &mut self, name: &str, default: Option<&str>, flag: char, required: bool, help: &str, type_: ArgType, )

Add another option to parse.

§Example
// add an option that is a `Flag`, with no default value, with
// a long form of `--verbose`, short form of `v`, that is not
// required to be passed, and has a default value of `false`

use argparse::{ArgParser, ArgType};

let mut parser = ArgParser::new("runner".into());
parser.add_opt("verbose", Some("false"), 'v', false,
    "Whether to produce verbose output", ArgType::Flag);
Source

pub fn remove_opt(&mut self, name: &str) -> Result<(), &'static str>

Remove an option from parsing consideration.

§Example
// add an option that is a `Flag`, with no default value, with
// a long form of `--verbose`, short form of `v`, that is not
// required to be passed, and has a default value of `false`

use argparse::{ArgParser, ArgType};

let mut parser = ArgParser::new("runner".into());
parser.add_opt("verbose", Some("false"), 'v', false,
    "Whether to produce verbose output", ArgType::Flag);
assert!(parser.remove_opt("verbose").is_ok())
Source

pub fn parse<'a, I: Iterator<Item = &'a String>>(&self, args: I) -> ParseResult

Parse a set of arguments, given the previous configuration

§Example
// add an option that is a `Flag`, with no default value, with
// a long form of `--verbose`, short form of `v`, that is not
// required to be passed, and has a default value of `false`

use argparse::{ArgParser, ArgType};

let mut parser = ArgParser::new("runner".into());
parser.add_opt("verbose", Some("false"), 'v', false,
    "Whether to produce verbose output", ArgType::Flag);

// Normally you'd get this from std::env::args().iter()
let test_1 = "./runner --verbose".split_whitespace()
    .map(|s| s.into())
    .collect::<Vec<String>>();
 
if let Ok(p_res) = parser.parse(test_1.iter()) {
    // do stuff here
}
Source

pub fn help(&self)

Prints the help message, which is constructed based on the options used

§Example
use argparse::{ArgParser, ArgType};

let mut parser = ArgParser::new("runner".into());
parser.add_opt("verbose", Some("false"), 'v', false,
    "Whether to produce verbose output", ArgType::Flag);

// Normally you'd get this from std::env::args().iter()
let test_1 = "./runner --help".split_whitespace()
    .map(|s| s.into())
    .collect::<Vec<String>>();
 
if let Ok(p_res) = parser.parse(test_1.iter()) {
    if let Some(true) = p_res.get("help") {
        parser.help();
    }
}

Trait Implementations§

Source§

impl Clone for ArgParser

Source§

fn clone(&self) -> ArgParser

Returns a copy of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ArgParser

Source§

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

Formats the value using the given formatter. Read more

Auto Trait Implementations§

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> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. 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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

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>,

Source§

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.