use super::prelude::*;
pub const RULE_DOUBLE_ANGLE: Rule = Rule {
name: "double-angle",
try_consume_fn,
};
fn try_consume_fn<'p, 'r, 't>(
log: &slog::Logger,
parser: &'p mut Parser<'r, 't>,
) -> ParseResult<'r, 't, Elements<'t>> {
let current = parser.current();
debug!(
log,
"Consuming token to create a left/right double angle quote";
"token" => current.token,
);
match current.token {
Token::LeftDoubleAngle => ok!(text!("\u{0ab}")),
Token::Quote if current.slice == ">>" => ok!(text!("\u{0bb}")),
Token::Quote => Err(parser.make_warn(ParseWarningKind::RuleFailed)),
_ => unreachable!(),
}
}