pub trait Emit<W>{
// Required method
fn emit(&self, buffer: &mut W);
// Provided method
fn chain(&self, buffer: W) -> W { ... }
}
pub trait Emit<W>{
// Required method
fn emit(&self, buffer: &mut W);
// Provided method
fn chain(&self, buffer: W) -> W { ... }
}