*const T and *mut T

T parameter &T parameter &mut T parameter T return value Option<T> parameter Option<T> return value JavaScript representation
Yes No No Yes Yes Yes A JavaScript number value

Example Rust Usage

use std::ptr; use wasm_bindgen::prelude::*; #[wasm_bindgen] pub fn take_pointer_by_value(x: *mut u8) {} #[wasm_bindgen] pub fn return_pointer() -> *mut u8 { ptr::null_mut() }

Example JavaScript Usage

import { take_pointer_by_value, return_pointer, } from './guide_supported_types_examples'; import { memory } from './guide_supported_types_examples_bg'; let ptr = return_pointer(); let buf = new Uint8Array(memory.buffer); let value = buf[ptr]; console.log(`The byte at the ${ptr} address is ${value}`); take_pointer_by_value(ptr);