[][src]Function combine::sep_end_by1

pub fn sep_end_by1<F, P, S>(parser: P, separator: S) -> SepEndBy1<F, P, S> where
    F: Extend<P::Output> + Default,
    P: Parser,
    S: Parser<Input = P::Input>, 

Parses parser one or more times separated and ended by separator, returning a collection with the values from p.

If the returned collection cannot be inferred type annotations must be supplied, either by annotating the resulting type binding let collection: Vec<_> = ... or by specializing when calling sep_by, sep_by1::<Vec<_>, _, _>(...).

let mut parser = sep_end_by1(digit(), token(';'));
let result_ok = parser.easy_parse(State::new("1;2;3;"))
                      .map(|(vec, state)| (vec, state.input));
assert_eq!(result_ok, Ok((vec!['1', '2', '3'], "")));
let result_err = parser.easy_parse(State::new(""));
assert_eq!(result_err, Err(easy::Errors {
    position: SourcePosition::default(),
    errors: vec![
        easy::Error::end_of_input(),
        easy::Error::Expected("digit".into())
    ]
}));