guide: Add Box<[JsValue]> example to supported types section

This commit is contained in:
Nick Fitzgerald 2018-08-13 17:08:18 -07:00
parent 60307e81f9
commit d1b2299340
4 changed files with 52 additions and 0 deletions

View File

@ -0,0 +1,22 @@
import {
take_boxed_js_value_slice_by_value,
return_boxed_js_value_slice,
take_option_boxed_js_value_slice,
return_option_boxed_js_value_slice,
} from './guide_supported_types_examples';
take_boxed_js_value_slice_by_value([null, true, 2, {}, []]);
let values = return_boxed_js_value_slice();
console.log(values instanceof Array); // true
take_option_boxed_js_value_slice(null);
take_option_boxed_js_value_slice(undefined);
take_option_boxed_js_value_slice([1, 2, 3]);
let maybeValues = return_option_boxed_js_value_slice();
if (maybeValues == null) {
// ...
} else {
console.log(maybeValues instanceof Array); // true
}

View File

@ -0,0 +1,17 @@
use wasm_bindgen::prelude::*;
#[wasm_bindgen]
pub fn take_boxed_js_value_slice_by_value(x: Box<[JsValue]>) {}
#[wasm_bindgen]
pub fn return_boxed_js_value_slice() -> Box<[JsValue]> {
vec![JsValue::NULL, JsValue::UNDEFINED].into_boxed_slice()
}
#[wasm_bindgen]
pub fn take_option_boxed_js_value_slice(x: Option<Box<[JsValue]>>) {}
#[wasm_bindgen]
pub fn return_option_boxed_js_value_slice() -> Option<Box<[JsValue]>> {
None
}

View File

@ -10,3 +10,4 @@ pub mod string;
pub mod char;
pub mod bool;
pub mod js_value;
pub mod boxed_js_value_slice;

View File

@ -145,6 +145,18 @@ garbage-collected heap and the Wasm linear memory with `TextDecoder` and
|:---:|:---:|:---:|:---:|:---:|:---:|:---:|
| Yes | No | No | Yes | Yes | Yes | A JavaScript `Array` object |
### Example Rust Usage
```rust
{{#include ../../../examples/guide-supported-types-examples/src/boxed_js_value_slice.rs}}
```
### Example JavaScript Usage
```js
{{#include ../../../examples/guide-supported-types-examples/boxed_js_value_slice.js}}
```
## `*const T` `*mut T`
| `T` parameter | `&T` parameter | `&mut T` parameter | `T` return value | `Option<T>` parameter | `Option<T>` return value | JavaScript representation |