in shenyu-wasm-build/src/instance.rs [41:70]
fn new(java_instance_object: GlobalRef, module_bytes: Vec<u8>) -> Result<Self, Error> {
let module_bytes = module_bytes.as_slice();
let imports = imports! {};
let instance = match instantiate(module_bytes, &imports) {
Ok(instance) => Rc::new(instance),
Err(e) => {
return Err(runtime_error(format!(
"Failed to instantiate the module: {}",
e
)))
}
};
let memories: HashMap<String, Memory> = instance
.exports()
.filter_map(|(export_name, export)| match export {
Export::Memory(memory) => Some((
export_name.to_string(),
Memory::new(Rc::new(memory.clone())),
)),
_ => None,
})
.collect();
Ok(Self {
java_instance_object,
instance,
memories,
})
}