hex_patch/asm/assembler.rs
1use std::error::Error;
2
3use crate::headers::Header;
4
5pub fn assemble(
6 asm: &str,
7 starting_virtual_address: u64,
8 header: &Header,
9) -> Result<Vec<u8>, Box<dyn Error>> {
10 let encoder = header
11 .get_encoder()
12 .map_err(|e| format!("Failed to get encoder: {}", e))?;
13
14 let out = encoder
15 .asm(asm.to_string(), starting_virtual_address)
16 .map_err(|e| format!("Failed to assemble: {}", e))?;
17 Ok(out.bytes)
18}