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