fastqc-rust 1.0.1

A Rust rewrite of FastQC - a quality control tool for high throughput sequence data
Documentation
pub mod classic;
pub mod modern;

use std::io;

use crate::config::TemplateName;
use crate::modules::QCModule;

/// Trait for HTML report templates.
///
/// Each template controls the complete HTML output structure, CSS, and icons.
/// Module content (charts and tables) is generated by the modules themselves
/// via `QCModule::write_html_report()`.
pub trait ReportTemplate {
    fn write_html_report(
        &self,
        modules: &[Box<dyn QCModule>],
        filename: &str,
        w: &mut dyn io::Write,
    ) -> io::Result<()>;
}

/// Create the appropriate template for the given name.
pub fn create_template(name: TemplateName) -> Box<dyn ReportTemplate> {
    match name {
        TemplateName::Classic => Box::new(classic::ClassicTemplate),
        TemplateName::Modern => Box::new(modern::ModernTemplate),
    }
}