1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
use crate::optim; pub trait Context: std::fmt::Debug + Send + Sync { fn optimizer_passes(&self) -> Vec<Box<optim::OptimizerPass>>; } #[derive(Debug)] pub struct DefaultContext; impl Context for DefaultContext { fn optimizer_passes(&self) -> Vec<Box<optim::OptimizerPass>> { let mut passes = optim::normalization(); passes.extend(optim::codegen().into_iter()); passes } }