pub trait Analyzer {
// Required method
fn parse(content: &str) -> Result<Self>
where Self: Sized;
// Provided methods
fn get_string(&self, rule: &str) -> Result<String> { ... }
fn get_string_list(&self, rule: &str) -> Result<Vec<String>> { ... }
fn get_elements(&self, rule: &str) -> Result<Vec<String>> { ... }
}