pub trait BaseCrawler {
// Required method
fn crawl<'a>(&self, context: RuleContext<'a>) -> Vec<RuleContext<'a>>;
// Provided methods
fn works_on_unparsable(&self) -> bool { ... }
fn passes_filter(&self, segment: &ErasedSegment) -> bool { ... }
}