Enum yaccas::parser::FreeArgumentSupport [] [src]

pub enum FreeArgumentSupport {
    None,
    AtTheEnd,
    Everywhere,
}

An enum which specifies the behavior of a parser on free (aka unknown) arguments.

Example

use yaccas::arguments::Value;
use yaccas::parser::{Parser, Result, FreeArgumentSupport};
use yaccas::scanner::Unix;

let mut parser = Parser::default();
parser.register(&["value"], Value::new::<u32>());

// Test: FreeArgumentSupport::None
parser.free_arguments = FreeArgumentSupport::None;
assert_eq!(parser.parse(Unix::new(&["-unknown"])), Result::InvalidArgument);

// Test: FreeArgumentSupport::AtTheEnd
parser.free_arguments = FreeArgumentSupport::AtTheEnd;
assert_eq!(parser.parse(Unix::new(&["-unknown", "-value", "2"])), Result::NotSufficient);
assert_eq!(parser.parse(Unix::new(&["-value", "2", "-unknown"])), Result::Success(vec!["unknown".to_owned()]));

// Test: FreeArgumentSupport::Everywhere
parser.free_arguments = FreeArgumentSupport::Everywhere;
assert_eq!(parser.parse(Unix::new(&["-unknown", "-value", "2"])), Result::Success(vec!["unknown".to_owned()]));
assert_eq!(parser.parse(Unix::new(&["-value", "2", "-unknown"])), Result::Success(vec!["unknown".to_owned()]));

Variants

No free arguments are supported.

Free arguments are only supported at the end. After a free argument, following arguments are free, too.

Free arguments are supported everywhere.

Trait Implementations

impl Debug for FreeArgumentSupport
[src]

Formats the value using the given formatter.

impl PartialEq for FreeArgumentSupport
[src]

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Eq for FreeArgumentSupport
[src]

impl Clone for FreeArgumentSupport
[src]

Returns a copy of the value. Read more

Performs copy-assignment from source. Read more

impl Copy for FreeArgumentSupport
[src]