usdpl_front/wasm/
wasm_traits.rs

1/// A Rust type which supports Into/FromWasmAbi or WasmDescribe
2pub trait KnownWasmCompatible {}
3
4/// Convert Rust type to WASM-compatible type
5pub trait IntoWasmable<T: KnownWasmCompatible> {
6    /// Required method
7    fn into_wasm(self) -> T;
8}
9
10/// Convert WASM-compatible type to Rust-centric type
11pub trait FromWasmable<T: KnownWasmCompatible> {
12    /// Required method
13    fn from_wasm(js: T) -> Self;
14}
15
16impl KnownWasmCompatible for f64 {}
17impl KnownWasmCompatible for f32 {}
18
19impl KnownWasmCompatible for isize {}
20impl KnownWasmCompatible for usize {}
21
22impl KnownWasmCompatible for i8 {}
23impl KnownWasmCompatible for i16 {}
24impl KnownWasmCompatible for i32 {}
25impl KnownWasmCompatible for i64 {}
26impl KnownWasmCompatible for i128 {}
27
28impl KnownWasmCompatible for u8 {}
29impl KnownWasmCompatible for u16 {}
30impl KnownWasmCompatible for u32 {}
31impl KnownWasmCompatible for u64 {}
32impl KnownWasmCompatible for u128 {}
33
34impl KnownWasmCompatible for bool {}
35impl KnownWasmCompatible for String {}
36
37impl KnownWasmCompatible for () {}
38
39impl KnownWasmCompatible for js_sys::Map {}
40impl KnownWasmCompatible for js_sys::Array {}