lucetc 0.6.1

Fastly's WebAssembly to native code compiler
Documentation
use crate::error::Error;
use parity_wasm::elements::Module;
use std::collections::HashMap;
use std::path::Path;
use wasmonkey::{Patcher, PatcherConfig};

pub fn patch_module<P: AsRef<Path>>(
    module: Module,
    builtins_path: P,
) -> Result<(Module, HashMap<String, String>), Error> {
    let mut patcher_config = PatcherConfig::default();
    patcher_config.builtins_map_original_names = false;
    patcher_config.builtins_path = Some(builtins_path.as_ref().into());
    let patcher = Patcher::new(patcher_config, module).map_err(Error::Patcher)?;
    let patched_builtins_map = patcher
        .patched_builtins_map("env")
        .map_err(Error::Patcher)?;
    let patched_module = patcher.patched_module();
    Ok((patched_module, patched_builtins_map))
}