mirror of
https://github.com/fluencelabs/wasm-bindgen
synced 2025-06-25 18:51:35 +00:00
guide: Add Box<[JsValue]>
example to supported types section
This commit is contained in:
@ -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
|
||||||
|
}
|
@ -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
|
||||||
|
}
|
@ -10,3 +10,4 @@ pub mod string;
|
|||||||
pub mod char;
|
pub mod char;
|
||||||
pub mod bool;
|
pub mod bool;
|
||||||
pub mod js_value;
|
pub mod js_value;
|
||||||
|
pub mod boxed_js_value_slice;
|
||||||
|
@ -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 |
|
| 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`
|
## `*const T` `*mut T`
|
||||||
|
|
||||||
| `T` parameter | `&T` parameter | `&mut T` parameter | `T` return value | `Option<T>` parameter | `Option<T>` return value | JavaScript representation |
|
| `T` parameter | `&T` parameter | `&mut T` parameter | `T` return value | `Option<T>` parameter | `Option<T>` return value | JavaScript representation |
|
||||||
|
Reference in New Issue
Block a user