Struct docopt::ArgvMap [−][src]
pub struct ArgvMap { /* 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]
impl ArgvMappub fn deserialize<'de, T: Deserialize<'de>>(self) -> Result<T, Error>[src]
pub fn deserialize<'de, T: Deserialize<'de>>(self) -> Result<T, Error>Tries to deserialize the map of values into a struct.
This method should always be called to deserialize 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
#[macro_use] extern crate serde_derive; use docopt::Docopt; const USAGE: &'static str = " Usage: cargo [options] (build | test) cargo --help Options: -v, --verbose -h, --help "; #[derive(Deserialize)] 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()).deserialize()) .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 Deserialize trait is valid.
pub fn get_bool(&self, key: &str) -> bool[src]
pub fn get_bool(&self, key: &str) -> boolFinds the value corresponding to key and calls as_bool() on it.
If the key does not exist, false is returned.
pub fn get_count(&self, key: &str) -> u64[src]
pub fn get_count(&self, key: &str) -> u64Finds the value corresponding to key and calls as_count() on it.
If the key does not exist, 0 is returned.
pub fn get_str(&self, key: &str) -> &str[src]
pub fn get_str(&self, key: &str) -> &strFinds the value corresponding to key and calls as_str() on it.
If the key does not exist, "" is returned.
pub fn get_vec(&self, key: &str) -> Vec<&str>[src]
pub fn get_vec(&self, key: &str) -> Vec<&str>Finds the value corresponding to key and calls as_vec() on it.
If the key does not exist, vec!() is returned.
pub fn find(&self, key: &str) -> Option<&Value>[src]
pub fn find(&self, key: &str) -> Option<&Value>Return the raw value corresponding to some key.
key should be a string in the traditional Docopt format. e.g.,
<arg> or --flag.
pub fn len(&self) -> usize[src]
pub fn len(&self) -> usizeReturn the number of values, not including synonyms.
Trait Implementations
impl Clone for ArgvMap[src]
impl Clone for ArgvMapfn clone(&self) -> ArgvMap[src]
fn clone(&self) -> ArgvMapReturns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)1.0.0[src]
fn clone_from(&mut self, source: &Self)Performs copy-assignment from source. Read more
impl Debug for ArgvMap[src]
impl Debug for ArgvMap