pub trait CompilerPlugin: Send + Sync {
// Required method
fn name(&self) -> &str;
// Provided methods
fn on_program_parsed(
&self,
_program: &Program,
) -> Result<PluginResult<Program>> { ... }
fn on_unit_parsed(
&self,
_unit: &Unit,
_path: &Path,
) -> Result<PluginResult<Unit>> { ... }
fn phases(&self) -> &[CompilationPhase] { ... }
}Expand description
Trait for compiler plugins that can inspect or transform compilation artifacts
Required Methods§
Provided Methods§
Sourcefn on_program_parsed(&self, _program: &Program) -> Result<PluginResult<Program>>
fn on_program_parsed(&self, _program: &Program) -> Result<PluginResult<Program>>
Called when a program has been parsed. Plugin may return a modified program.
Sourcefn on_unit_parsed(
&self,
_unit: &Unit,
_path: &Path,
) -> Result<PluginResult<Unit>>
fn on_unit_parsed( &self, _unit: &Unit, _path: &Path, ) -> Result<PluginResult<Unit>>
Called when a unit has been parsed. Plugin may return a modified unit.
Sourcefn phases(&self) -> &[CompilationPhase]
fn phases(&self) -> &[CompilationPhase]
Phases this plugin is interested in (for optimization)