revparse
Usage
// Import the Parser struct, and ArgState enum
use ;
// Create an instance of Parser
let mut parser: Parser = new; // your_program_name is needed for the help message
// Add argument
parser.add_argument;
// Call this function between adding the arguments and getting them
parser.run; // Will take the arguments passed to the program
// Alternatively you can use run_custom_args() for testing
// parser.run_custom_args(Parser::args(&["your_program_name", "-a", "value"]));
let argument: ArgState = parser.get;
match argument
Positional Arguments
Positional Arguments are Values passed without flags.
Usage
use Parser;
let mut parser: Parser = new;
// This would store the first argument, that doesn't start with '-' AND isn't after a flag, that takes a value.
parser.add_pos_arg;
parser.run;
let pos_args: = parser.get_pos_args;
if pos_args.len != 0
Examples
Example Program with flag '-a', that takes a value and flag '-b', that doesn't
use ;
let mut parser: Parser = new;
parser.add_argument;
parser.add_argument;
// Normally you would call .run(), but in this example we will call .run_custom_args() instead, to test it.
parser.run_custom_args;
let value_passed_to_a: String = match parser.get ;
assert_eq!;
if let True = parser.get else
Help Message:
Usage: your_program_name [OPTION]...
Options:
-a, --arg-a=VAL_NAME Takes a value
-b, --arg-b Does not take a value
Previous Example Program with 2 Positional Arguments
use ;
let mut parser: Parser = new;
parser.add_argument;
parser.add_argument;
parser.add_pos_arg;
parser.add_pos_arg;
// You can see the help message format below
parser.pos_arg_help;
// Normally you would call .run(), but in this example we will call .run_custom_args() instead, to test it.
parser.run_custom_args;
// From previos code
let value_passed_to_a: String = match parser.get ;
assert_eq!;
if let True = parser.get else
// Positional Arguments
let pos_args: = parser.get_pos_args;
assert_eq!; // Length is 2, as two positional Arguments were provided.
assert_eq!;
assert_eq!;
Help Message:
Usage: your_program_name [OPTION]... EXAMPLE [ANOTHER]...
Help Message Shown under 'Usage:', EXAMPLE can be used to ... etc
Can contain new line chars.
Options:
-a, --arg-a=VAL_NAME Takes a value
-b, --arg-b Does not take a value