pub trait OptimizationPass: Send + Sync {
// Required methods
fn name(&self) -> &str;
fn apply(&self, definition: &mut ModelIR) -> Result<OptimizationResult>;
fn is_applicable(&self, definition: &ModelIR) -> bool;
fn dependencies(&self) -> Vec<String>;
}Expand description
Optimization pass for custom optimization pipelines
Required Methods§
Sourcefn apply(&self, definition: &mut ModelIR) -> Result<OptimizationResult>
fn apply(&self, definition: &mut ModelIR) -> Result<OptimizationResult>
Apply optimization to model definition
Sourcefn is_applicable(&self, definition: &ModelIR) -> bool
fn is_applicable(&self, definition: &ModelIR) -> bool
Check if optimization is applicable
Sourcefn dependencies(&self) -> Vec<String>
fn dependencies(&self) -> Vec<String>
Get optimization dependencies (must run before this)