Slide 9
Slide 9 text
バッファの受け渡しの例
9
const { instance } = await WebAssembly.instantiateStreaming(fetch("foo.wasm"));
const exports = instance.exports;
const ptr = exports.alloc(8);
new Uint8Array(exports.memory.buffer).set([0, 1, 2, 3, 4, 5, 6, 7], ptr);
exports.foo(ptr, 8);
exports.dealloc(ptr, 8);
use std::slice;
#[no_mangle]
pub unsafe extern "C" fn foo(ptr: *const u8, size: usize) {
let buf = slice::from_raw_parts(ptr, size);
// ...
}