問題タブ [wasm-bindgen]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
rust - オブジェクトの配列を WebAssembly に渡し、それを wasm-bindgen で構造体のベクトルに変換する方法は?
次のように整数の配列を渡すことができます。
WebAssembly に保存し、次のようなベクターに保存します。
次のように単一のオブジェクトを渡すこともできます。
WebAssembly に追加し、次のElement
ような構造体として保存します。
次に試したのは、次のようなオブジェクトの配列を渡すことです。
Element
WebAssembly に追加し、次のような構造体のベクトルとして保存します。
これはコンパイルされますが、このコードを実行するとエラーが発生します。
次のように数値で満たされたオブジェクトの配列を渡します。
Element
構造体に値のみが含まれている場合は、WebAssembly への変換が可能u32
です。
String
問題は構造体の型が原因のようElement
です。
私は何を間違えましたか?
次の記事を見つけましたが、問題の解決策が見つかりません。
JsValue
Serde を使用して任意のデータをシリアライズおよびデシリアライズするこれは、JavaScript オブジェクトを構造体に変換する方法を説明していますが、オブジェクトの配列を構造体のベクトルに変換する方法は説明していません。
-
このクレートにより、Rust で配列やオブジェクトなどの JavaScript 型を使用できますが、これは私が望んでいるものではありません。JavaScript の値を Rust の対応する値に変換したいと考えています。このクレートは、私が理解している限り、Rust でインラインで JavaScript を使用することのみを許可しています...そして、これは Rust だけを使用するほど高速ではありません。
rust - 別のモジュールで定義された関数にマクロ属性を適用するにはどうすればよいですか?
wasm-bindgen
viarust-webpack-template
を使用して Rust コードを WebAssembly にコンパイルすることに興味があります。#[wasm_bindgen]
ただし、生成された WebAssembly インターフェイスから関数ロジックを分離してプロジェクトをより適切に整理できるように、コードを属性マクロで直接ラップすることは避けたいと思います。代わりに、バインディングの生成を別のファイルにすることをお勧めします。たとえば、次のようになります。
#[wasm_bindgen]
これは、通常続く関数定義の AST で動作するマクロ属性であることは理解していますが、そのマクロを別の場所で定義されたコードに適用する方法はありますか?