Skip to main content

CompilerPlugin

Trait CompilerPlugin 

Source
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§

Source

fn name(&self) -> &str

Plugin name for diagnostics

Provided Methods§

Source

fn on_program_parsed(&self, _program: &Program) -> Result<PluginResult<Program>>

Called when a program has been parsed. Plugin may return a modified program.

Source

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.

Source

fn phases(&self) -> &[CompilationPhase]

Phases this plugin is interested in (for optimization)

Implementors§