Function parser_combinators::combinator::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 them each in turn. Fails if all parsers fails or when a parsers fails with a consumed state.

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());