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_variables)]
#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));