pub mod baseline;
pub mod comparison;
pub mod persistence;
pub mod recommendation;
pub mod runtime;
pub use comparison::ShadowReport;
pub use recommendation::ShadowTask;
use baseline::simulate_baseline;
use comparison::compare;
use recommendation::measure_treatment;
#[derive(Debug, Default)]
pub struct ShadowEngine;
impl ShadowEngine {
pub fn run_comparison(tasks: &[ShadowTask]) -> ShadowReport {
let baselines: Vec<_> = tasks.iter().map(simulate_baseline).collect();
let treatments: Vec<_> = tasks.iter().map(measure_treatment).collect();
compare(&baselines, &treatments)
}
}
pub fn run_comparison(tasks: &[ShadowTask]) -> ShadowReport {
ShadowEngine::run_comparison(tasks)
}
#[cfg(test)]
mod runtime_tests;
#[cfg(test)]
mod tests;