///|
pub struct ReportBuilder {
title : String
summary : String
inputs : Array[ChemInput]
assumptions : Array[Assumption]
formulas : Array[Formula]
results : Array[ChemResult]
warnings : Array[ReportWarning]
sources : Array[DataSource]
} derive(Debug, Eq)
///|
pub fn report_builder(title : String, summary? : String = "") -> ReportBuilder {
{
title,
summary,
inputs: [],
assumptions: [],
formulas: [],
results: [],
warnings: [],
sources: [],
}
}
///|
pub fn ReportBuilder::add_input(
self : ReportBuilder,
value : ChemInput,
) -> ReportBuilder {
self.inputs.push(value)
self
}
///|
pub fn ReportBuilder::add_assumption(
self : ReportBuilder,
value : Assumption,
) -> ReportBuilder {
self.assumptions.push(value)
self
}
///|
pub fn ReportBuilder::add_formula(
self : ReportBuilder,
value : Formula,
) -> ReportBuilder {
self.formulas.push(value)
self
}
///|
pub fn ReportBuilder::add_result(
self : ReportBuilder,
value : ChemResult,
) -> ReportBuilder {
self.results.push(value)
self
}
///|
pub fn ReportBuilder::add_warning(
self : ReportBuilder,
value : ReportWarning,
) -> ReportBuilder {
self.warnings.push(value)
self
}
///|
pub fn ReportBuilder::add_source(
self : ReportBuilder,
value : DataSource,
) -> ReportBuilder {
self.sources.push(value)
self
}
///|
pub fn ReportBuilder::build(self : ReportBuilder) -> ChemReport {
report(
self.title,
summary=self.summary,
inputs=self.inputs,
assumptions=self.assumptions,
formulas=self.formulas,
results=self.results,
warnings=self.warnings,
sources=self.sources,
)
}