pub trait GenerateToWriter<F: Default>: Debug {
// Required method
fn write_in_format(
&mut self,
module: &Module,
writer: &mut dyn Write,
format: F
) -> Result<(), Error>;
// Provided methods
fn write(
&mut self,
module: &Module,
writer: &mut dyn Write
) -> Result<(), Error> { ... }
fn write_to_string(&mut self, module: &Module) -> Result<String, Error> { ... }
fn write_to_file(
&mut self,
module: &Module,
path: &Path
) -> Result<(), Error> { ... }
fn write_to_file_in_format(
&mut self,
module: &Module,
path: &Path,
format: F
) -> Result<(), Error> { ... }
}