gaia_assembler/backends/
mod.rs1pub mod gcn;
6pub mod jvm;
7pub mod msil;
8pub mod pe;
9pub mod sass;
10pub mod wasi;
11pub mod x86;
12
13#[cfg(feature = "clr")]
15pub use self::msil::ClrBackend;
16pub use self::{gcn::GcnBackend, jvm::JvmBackend, pe::PeBackend, sass::SassBackend, wasi::WasiBackend, x86::X86Backend};
17
18use crate::{config::GaiaConfig, program::GaiaModule};
19use gaia_types::{helpers::CompilationTarget, Result};
20use std::collections::HashMap;
21
22pub trait Backend {
24 fn name(&self) -> &'static str;
26
27 fn primary_target(&self) -> CompilationTarget;
29
30 fn match_score(&self, target: &CompilationTarget) -> f32;
33
34 fn generate(&self, program: &GaiaModule, config: &GaiaConfig) -> Result<GeneratedFiles>;
36}
37
38pub struct GeneratedFiles {
39 pub files: HashMap<String, Vec<u8>>,
40 pub diagnostics: Vec<gaia_types::GaiaError>,
41}