Number Slices - The `wasm-bindgen` Guide

## Keyboard shortcuts

Press `←` or `→` to navigate between chapters

Press `S` or `/` to search in the book

Press `?` to show this help

Press `Esc` to hide this help

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