pub trait TextRule: Sync + Send {
// Required methods
fn check(
&mut self,
event: TextRuleEvent<'_>,
config: &ConfigOption
) -> TextRuleResult;
fn name(&self) -> String;
fn hint(&self, config: &ConfigOption) -> String;
fn reason(&self) -> String;
// Provided method
fn into_rule(self) -> Rule
where Self: Sized + 'static { ... }
}