無駄と文化

実用的ブログ

tsify-next

Tsify には予約された型名がある

tsify-next を使っていると特定の型名に対して想定していない型情報が生成されることがあります。 例えば Path, Range, Cow などがそうです。 // Rust pub struct Path { b: bool, s: String, } #[derive(Tsify)] pub struct Range<T> { _t: T, b: bool, s: Str</t>…

wasm-bindgen で Record<Keys, Type> 型を取り扱う

wasm-bindgen を使うと Rust の構造体から TypeScript の型情報を生成して wasm で受け渡しできるようになる。 やるべきことは #[wasm_bindgen] 属性をつけるだけで、wasm-bindgen がよしなにしてくれる。 // Rust use wasm_bindgen::prelude::*; #[wasm_bin…

wasm-bindgen の型情報を Tsify でもっと良い感じにする

wasm-bindgen では Rust に組み込みの型だけでなくユーザーが定義した型を関数の引数・返り値に使うことができます。 例えば下記のように User 構造体を定義して、 // Rust #[wasm_bindgen(getter_with_clone)] pub struct User { pub name: String, pub age…