use wasmi::{ModuleInstance, ImportsBuilder, NopExternals, RuntimeValue}; fn init_population() -> Vec { unimplemented!(); } fn mutate() -> Vec { unimplemented!(); } fn asd() { // Parse WAT (WebAssembly Text format) into wasm bytecode. let wasm_binary: Vec = wabt::wat2wasm( r#" (module (func (export "test") (result i32) i32.const 1337 ) ) "#, ) .expect("failed to parse wat"); // Load wasm binary and prepare it for instantiation. let module = wasmi::Module::from_buffer(&wasm_binary) .expect("failed to load wasm"); // Instantiate a module with empty imports and // assert that there is no `start` function. let instance = ModuleInstance::new( &module, &ImportsBuilder::default() ) .expect("failed to instantiate wasm module") .assert_no_start(); // Finally, invoke the exported function "test" with no parameters // and empty external function executor. assert_eq!( instance.invoke_export( "test", &[], &mut NopExternals, ).expect("failed to execute export"), Some(RuntimeValue::I32(1337)), ); } #[cfg(test)] mod tests { #[test] fn it_works() { super::asd(); } }