pub trait Renderable<'a> {
// Required method
fn render<'b>(&'b self, style: &'a CStyle<'a>) -> StyledText<'b>
where 'a: 'b;
// Provided methods
fn style<'b>(&'b self, style: &'a CStyle<'a>) -> StyledText<'b>
where 'a: 'b { ... }
fn show<'b>(&'b self, style: &'a CStyle<'a>)
where 'a: 'b { ... }
fn showln<'b>(&'b self, style: &'a CStyle<'a>)
where 'a: 'b { ... }
fn write<'b>(
&'b self,
style: &'a CStyle<'a>,
writer: &mut dyn Write
) -> Result<(), Error>
where 'a: 'b { ... }
fn write_line<'b>(
&'b self,
style: &'a CStyle<'a>,
writer: &mut dyn Write
) -> Result<(), Error>
where 'a: 'b { ... }
}