1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
use sway_ir::Function;
use crate::{asm_lang::Label, CompileResult};
use super::{evm::EvmAsmBuilderResult, fuel::fuel_asm_builder::FuelAsmBuilderResult};
pub enum AsmBuilderResult {
Fuel(FuelAsmBuilderResult),
Evm(EvmAsmBuilderResult),
}
pub trait AsmBuilder {
fn func_to_labels(&mut self, func: &Function) -> (Label, Label);
fn compile_function(&mut self, function: Function) -> CompileResult<()>;
fn finalize(&self) -> AsmBuilderResult;
}