pub trait Rule: Send {
// Required method
fn id(&self) -> &'static str;
// Provided methods
fn max_severity(&self) -> Severity { ... }
fn interest(&self) -> Interest { ... }
fn init(&mut self, _ctx: &ValidationContext) { ... }
fn on_event(
&mut self,
_event: &ParseEvent,
_ctx: &mut ValidationContext,
_out: &mut dyn MessageSink,
) { ... }
fn on_finish(
&mut self,
_ctx: &mut ValidationContext,
_out: &mut dyn MessageSink,
) { ... }
}