pub trait Assembler {
// Required methods
fn configuration(&self) -> &AssemblerConfiguration;
fn set_configuration(&mut self, configuration: AssemblerConfiguration);
fn assemble_dossier(
&self,
dossier: &Dossier,
) -> Result<Artifact, AssemblerError>;
// Provided methods
fn assemble_document(
&self,
document: &Document,
) -> Result<Artifact, AssemblerError> { ... }
fn assemble_document_standalone(
&self,
_page_title: &String,
_styles_references: Option<&Vec<String>>,
toc: Option<&TableOfContents>,
bibliography: Option<&Bibliography>,
document: &Document,
) -> Result<Artifact, AssemblerError> { ... }
}