Skip to main content

CodeGenerator

Trait CodeGenerator 

Source
pub trait CodeGenerator {
    // Required methods
    fn language(&self) -> Language;
    fn generator_type(&self) -> GeneratorType;
    fn generate(
        &self,
        ir: &IrSpec,
    ) -> Result<Vec<FileInfo>, Box<dyn Error + Send + Sync>>;
}
Expand description

Trait for code generators.

Generators receive a version-agnostic IrSpec (lowered by the orchestrator) and return a list of files. How a generator decomposes its pipeline internally is up to the implementation.

Required Methods§

Source

fn language(&self) -> Language

Returns the target language.

Source

fn generator_type(&self) -> GeneratorType

Returns the generator type identifier.

Source

fn generate( &self, ir: &IrSpec, ) -> Result<Vec<FileInfo>, Box<dyn Error + Send + Sync>>

Generate files from a lowered IR specification.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§