use super::prelude::*;
pub fn collect_consume<'r, 't>(
parser: &mut Parser<'r, 't>,
rule: Rule,
close_conditions: &[ParseCondition],
invalid_conditions: &[ParseCondition],
error_kind: Option<ParseErrorKind>,
) -> ParseResult<'r, 't, Vec<Element<'t>>> {
collect_consume_keep(
parser,
rule,
close_conditions,
invalid_conditions,
error_kind,
)
.map(|success| success.map(|(elements, _)| elements))
}
pub fn collect_consume_keep<'r, 't>(
parser: &mut Parser<'r, 't>,
rule: Rule,
close_conditions: &[ParseCondition],
invalid_conditions: &[ParseCondition],
error_kind: Option<ParseErrorKind>,
) -> ParseResult<'r, 't, (Vec<Element<'t>>, &'r ExtractedToken<'t>)> {
let mut all_elements = Vec::new();
let (last, errors, paragraph_safe) = collect(
parser,
rule,
close_conditions,
invalid_conditions,
error_kind,
|parser| consume(parser)?.map_ok(|elements| all_elements.extend(elements)),
)?
.into();
ok!(paragraph_safe; (all_elements, last), errors)
}