[−][src]Function xflag::parse
pub fn parse<C: IntoIterator>(args: C) -> FlagResult<Arguments> where
C::Item: AsRef<OsStr>,
Parse flags from a type that can be turned into an iterator,
for example a Vec
, and return a sequence of arguments.
To find if an argument is present:
let flags = xflag::parse(vec!["-h"]).unwrap(); assert!(flags.present('h'));
Finding the first option:
use xflag::{Argument, parse}; let flags = parse(vec!["-fbar"]).unwrap(); assert_eq!(flags.first('f'), Some(&Argument::Option('f', "bar".into())));
To cycle through the arguments:
for arg in xflag::parse(vec!["-z", "-fbar", "baz", "+42", "-"]).unwrap() { println!("{}", arg); }
Asserting a particular order to the arguments:
use xflag::{Argument, parse}; let args = parse(vec!["-z", "-fbar", "baz", "+42", "-"]).unwrap(); let mut iter = args.into_iter(); assert_eq!(iter.next(), Some(Argument::Flag('z'))); assert_eq!(iter.next(), Some(Argument::Option('f', "bar".into()))); assert_eq!(iter.next(), Some(Argument::Free("baz".into()))); assert_eq!(iter.next(), Some(Argument::Line(42))); assert_eq!(iter.next(), Some(Argument::Stdin)); assert_eq!(iter.next(), None);