Function combine::sep_end_by
source · [−]pub fn sep_end_by<F, Input, P, S>(parser: P, separator: S) -> SepEndBy<F, P, S> where
Input: Stream,
F: Extend<P::Output> + Default,
P: Parser<Input>,
S: Parser<Input>,
Expand description
Parses parser
zero 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_by::<Vec<_>, _, _>(...)
let mut parser = sep_end_by(digit(), token(';'));
let result_ok = parser.parse("1;2;3;");
assert_eq!(result_ok, Ok((vec!['1', '2', '3'], "")));
let result_ok2 = parser.parse("1;2;3");
assert_eq!(result_ok2, Ok((vec!['1', '2', '3'], "")));