Trait wasm_bindgen::convert::WasmAbi
source · pub trait WasmAbi {
type Prim1: WasmPrimitive;
type Prim2: WasmPrimitive;
type Prim3: WasmPrimitive;
type Prim4: WasmPrimitive;
// Required methods
fn split(self) -> (Self::Prim1, Self::Prim2, Self::Prim3, Self::Prim4);
fn join(
prim1: Self::Prim1,
prim2: Self::Prim2,
prim3: Self::Prim3,
prim4: Self::Prim4
) -> Self;
}Expand description
A trait which represents types that can be passed across the Wasm ABI boundary, by being split into multiple Wasm primitive types.
Up to 4 primitives are supported; if you don’t want to use all of them, you
can set the rest to (), which will cause them to be ignored.
You need to be careful how many primitives you use, however:
Result<T, JsValue> uses up 2 primitives to store the error, and so it
doesn’t work if T uses more than 2 primitives.
So, if you’re adding support for a type that needs 3 or more primitives and is able to be returned, you have to add another primitive here.
There’s already one type that uses 3 primitives: &mut [T]. However, it
can’t be returned anyway, so it doesn’t matter that
Result<&mut [T], JsValue> wouldn’t work.