Function combine::choice [] [src]

pub fn choice<S, P>(ps: S) -> Choice<S, P> where S: AsMut<[P]>, P: Parser

Takes an array of parsers and tries to apply them each in order. Fails if all parsers fails or if an applied parser fails after consuming input.

let mut parser = choice([string("Apple"), string("Banana"), string("Orange")]);
assert_eq!(parser.parse("Banana"), Ok(("Banana", "")));
assert_eq!(parser.parse("Orangexx"), Ok(("Orange", "xx")));
assert!(parser.parse("Appl").is_err());
assert!(parser.parse("Pear").is_err());