[−][src]Function parse_hyperlinks::take_until_unbalanced
pub fn take_until_unbalanced(
opening_bracket: char,
closing_bracket: char
) -> impl Fn(&str) -> IResult<&str, &str>
A parser designed to work inside the nom::sequence::delimited parser, e.g.:
use nom::bytes::complete::tag; use nom::sequence::delimited; use parse_hyperlinks::take_until_unbalanced; let mut parser = delimited(tag("<"), take_until_unbalanced('<', '>'), tag(">")); assert_eq!(parser("<<inside>inside>abc"), Ok(("abc", "<inside>inside")));
It skips nested brackets until it finds an extra unbalanced closing bracket. Escaped brackets
like \< and \> are not considered as brackets and are not counted. This function is
very similar to nom::bytes::complete::take_until(">"), except it also takes nested brackets.