現在の wasm インスタンスのメモリ バッファを参照する引数バッファが必要です。
まず、これは必ずしも真実ではないことに注意してください。そのバインディングは、標準の JavaScript API 用Uint8Array
です。これにより、任意のバッファまたは容量からバイト配列を作成できます。
バイト配列ビューを Rust メモリに渡したい、またはwasm-bindgen
Rustメモリ内のバイトを JavaScript に返したいだけの場合、このコンストラクターは実際には必要ありません。錆コード。&[u8]
Vec<u8>
ただし、念のため、質問の2番目の部分に答えるには
Rust 側からそのようなオブジェクトにアクセスするにはどうすればよいですか? (wasm にコンパイルされます)
Rust 側からはwasm_bindgen::memory
、メモリ インスタンスを提供する を使用できます。デフォルトでは、ジェネリックとして返されますが、それをusingにJsValue
キャストできます。これにより、必要に応じてプロパティにアクセスできるようになります。WebAssembly.Memory
.unchecked_into::<js_sys::WebAssembly::Memory>()
buffer
そのようなRustメモリへの短命のUint8Array
ビューの作成は、組み込み API にも実装されていますが、正当な理由でjs_sys::Uint8Array::view
マークされていることに注意してください。多くの組み込みAPIが呼び出す割り当てで無効になる可能性があるため、このようなビューは非常に慎重に処理し、作成後すぐに使用するようにしてください。問題を回避する最善の方法は、このような低レベルのアクセスにまったく依存せず、代わりにバインディングを生成するために使用することです。unsafe
buffer
#[wasm_bindgen]