pub trait ResultContainer {
// Required methods
fn results(&self) -> &Vec<DescItem>;
fn results_mut(&mut self) -> &mut Vec<DescItem>;
fn cursor_position(&self) -> Option<usize>;
// Provided methods
fn emit_range(&mut self, range: SourceRange, kind: DescItemKind) { ... }
fn emit(&mut self, reader: &mut Reader<'_>, kind: DescItemKind) { ... }
}