sway_core/asm_generation/
asm_builder.rs1use super::FinalizedAsm;
2use crate::{asm_lang::Label, BuildConfig};
3use sway_error::handler::{ErrorEmitted, Handler};
4use sway_ir::{ConfigContent, Function};
5
6pub trait AsmBuilder {
7 fn func_to_labels(&mut self, func: &Function) -> (Label, Label);
8 fn compile_configurable(&mut self, config: &ConfigContent);
9 fn compile_function(
10 &mut self,
11 handler: &Handler,
12 function: Function,
13 ) -> Result<(), ErrorEmitted>;
14 fn finalize(
15 self,
16 handler: &Handler,
17 build_config: Option<&BuildConfig>,
18 fallback_fn: Option<Label>,
19 ) -> Result<FinalizedAsm, ErrorEmitted>;
20}