markdown_that/parser/inline/rule.rs
1use crate::Node;
2use crate::parser::core::rule_builder;
3
4/// Each member of an inline rule chain must implement this trait
5pub trait InlineRule: 'static {
6 const MARKER: char;
7
8 fn check(state: &mut super::InlineState) -> Option<usize> {
9 Self::run(state).map(|(_node, len)| len)
10 }
11
12 fn run(state: &mut super::InlineState) -> Option<(Node, usize)>;
13}
14
15rule_builder!(InlineRule);