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
None
No free arguments are supported.
AtTheEnd
Free arguments are only supported at the end. After a free argument, following arguments are free, too.
Everywhere
Free arguments are supported everywhere.
Trait Implementations
impl Debug for FreeArgumentSupport
[src]
impl PartialEq for FreeArgumentSupport
[src]
fn eq(&self, __arg_0: &FreeArgumentSupport) -> bool
This method tests for self
and other
values to be equal, and is used by ==
. Read more
fn ne(&self, other: &Rhs) -> bool
1.0.0
This method tests for !=
.
impl Eq for FreeArgumentSupport
[src]
impl Clone for FreeArgumentSupport
[src]
fn clone(&self) -> FreeArgumentSupport
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