Struct docopt::ArgvMap [] [src]

pub struct ArgvMap {
    // some fields omitted
}

A map containing matched values from command line arguments.

The keys are just as specified in Docopt: --flag for a long flag or -f for a short flag. (If -f is a synonym for --flag, then either key will work.) ARG or <arg> specify a positional argument and cmd specifies a command.

Methods

impl ArgvMap
[src]

fn decode<T: Decodable>(self) -> Result<T, Error>

Tries to decode the map of values into a struct.

This method should always be called to decode a ArgvMap into a struct. All fields of the struct must map to a corresponding key in the ArgvMap. To this end, each member must have a special prefix corresponding to the different kinds of patterns in Docopt. There are three prefixes: flag_, arg_ and cmd_ which respectively correspond to short/long flags, positional arguments and commands.

If a Docopt item has a - in its name, then it is converted to an _.

Example

use docopt::Docopt;

static USAGE: &'static str = "
Usage: cargo [options] (build | test)
       cargo --help

Options: -v, --verbose
         -h, --help
";

#[derive(RustcDecodable)]
struct Args {
  cmd_build: bool,
  cmd_test: bool,
  flag_verbose: bool,
  flag_h: bool,
}

let argv = || vec!["cargo", "build", "-v"].into_iter();
let args: Args = Docopt::new(USAGE)
                        .and_then(|d| d.argv(argv()).decode())
                        .unwrap_or_else(|e| e.exit());
assert!(args.cmd_build && !args.cmd_test
        && args.flag_verbose && !args.flag_h);

Note that in the above example, flag_h is used but flag_help could also be used. (In fact, both could be used at the same time.)

In this example, only the bool type was used, but any type satisfying the Decodable trait is valid.

fn get_bool(&self, key: &str) -> bool

Finds the value corresponding to key and calls as_bool() on it. If the key does not exist, false is returned.

fn get_count(&self, key: &str) -> u64

Finds the value corresponding to key and calls as_count() on it. If the key does not exist, 0 is returned.

fn get_str<'a>(&'a self, key: &str) -> &'a str

Finds the value corresponding to key and calls as_str() on it. If the key does not exist, "" is returned.

fn get_vec<'a>(&'a self, key: &str) -> Vec<&'a str>

Finds the value corresponding to key and calls as_vec() on it. If the key does not exist, vec!() is returned.

fn find<'a>(&'a self, key: &str) -> Option<&'a Value>

Return the raw value corresponding to some key.

key should be a string in the traditional Docopt format. e.g., <arg> or --flag.

fn len(&self) -> usize

Return the number of values, not including synonyms.

Trait Implementations

impl Clone for ArgvMap
[src]

fn clone(&self) -> ArgvMap

Returns a copy of the value. Read more

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

Performs copy-assignment from source. Read more

impl Debug for ArgvMap
[src]

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

Formats the value using the given formatter.