pub mod text_renderer;
pub trait Renderer {
fn add_empty_line(&mut self);
fn new_sub_renderer(&self, width: usize) -> Self;
fn start_block(&mut self);
fn end_block(&mut self);
fn new_line(&mut self);
fn new_line_hard(&mut self);
fn add_horizontal_border(&mut self);
fn start_pre(&mut self);
fn end_pre(&mut self);
fn add_preformatted_block(&mut self, text: &str);
fn add_inline_text(&mut self, text: &str);
fn width(&self) -> usize;
fn add_block_line(&mut self, line: &str);
fn append_subrender<'a, I>(&mut self, other: Self, prefixes: I)
where I:Iterator<Item=&'a str>;
fn append_columns_with_borders<I>(&mut self, cols: I, collapse: bool)
where I:IntoIterator<Item=Self>, Self: Sized;
fn empty(&self) -> bool;
fn text_len(&self) -> usize;
fn start_link(&mut self, target: &str);
fn end_link(&mut self);
fn start_emphasis(&mut self);
fn end_emphasis(&mut self);
fn start_strong(&mut self);
fn end_strong(&mut self);
fn start_code(&mut self);
fn end_code(&mut self);
fn add_image(&mut self, title: &str);
fn record_frag_start(&mut self, fragname: &str);
}