Number Slices: [u8]
, [i8]
, [u16]
, [i16]
, [u32]
, [i32]
, [u64]
, [i64]
, [f32]
, [f64]
, [MaybeUninit<u8>]
, [MaybeUninit<i8>]
, [MaybeUninit<u16>]
, [MaybeUninit<i16>]
, [MaybeUninit<u32>]
, [MaybeUninit<i32>]
, [MaybeUninit<u64>]
, [MaybeUninit<i64>]
, [MaybeUninit<f32>]
, and [MaybeUninit<f64>]
T parameter | &T parameter | &mut T parameter | T return value | Option<&T> parameter | Option<T> return value | JavaScript representation |
---|---|---|---|---|---|---|
No | Yes | Yes | No | No | No | A JavaScript TypedArray view of the Wasm memory for the boxed slice of the appropriate type (Int32Array , Uint8Array , etc) |
Note: Numeric
MaybeUninit<T>
can always be assumed to be initialized upon transmission from Rust to JS and vice-versa. However, uninitialized values coming from Rust might contain unspecified values.
Example Rust Usage
#![allow(unused)] fn main() { use wasm_bindgen::prelude::*; #[wasm_bindgen] pub fn take_number_slice_by_shared_ref(x: &[f64]) {} #[wasm_bindgen] pub fn take_number_slice_by_exclusive_ref(x: &mut [u8]) {} }
Example JavaScript Usage
import {
take_number_slice_by_shared_ref,
take_number_slice_by_exclusive_ref,
} from './guide_supported_types_examples';
take_number_slice_by_shared_ref(new Float64Array(100));
take_number_slice_by_exclusive_ref(new Uint8Array(100));