sway_core/asm_generation/
asm_builder.rs

1use 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}