pub trait Emitter {
// Required method
fn emit_block(&self, block: Block, out: &mut String);
// Provided methods
fn emit_elements(&self, elements: Vec<Element>, out: &mut String) { ... }
fn emit_element(&self, element: Element, out: &mut String) { ... }
fn emit_text(&self, text: String, out: &mut String) { ... }
fn emit_extension_element(
&self,
_tag: ExtensionTag,
element: Element,
out: &mut String,
) { ... }
}