Struct wasm_bindgen::JsValue[][src]

pub struct JsValue { /* fields omitted */ }

Representation of an object owned by JS.

A JsValue doesn’t actually live in Rust right now but actually in a table owned by the wasm-bindgen generated JS glue code. Eventually the ownership will transfer into wasm directly and this will likely become more efficient, but for now it may be slightly slow.

Implementations

impl JsValue[src]

pub const NULL: JsValue[src]

The null JS value constant.

pub const UNDEFINED: JsValue[src]

The undefined JS value constant.

pub const TRUE: JsValue[src]

The true JS value constant.

pub const FALSE: JsValue[src]

The false JS value constant.

pub fn from_str(s: &str) -> JsValue[src]

Creates a new JS value which is a string.

The utf-8 string provided is copied to the JS heap and the string will be owned by the JS garbage collector.

pub fn from_f64(n: f64) -> JsValue[src]

Creates a new JS value which is a number.

This function creates a JS value representing a number (a heap allocated number) and returns a handle to the JS version of it.

pub fn from_bool(b: bool) -> JsValue[src]

Creates a new JS value which is a boolean.

This function creates a JS object representing a boolean (a heap allocated boolean) and returns a handle to the JS version of it.

pub fn undefined() -> JsValue[src]

Creates a new JS value representing undefined.

pub fn null() -> JsValue[src]

Creates a new JS value representing null.

pub fn symbol(description: Option<&str>) -> JsValue[src]

Creates a new JS symbol with the optional description specified.

This function will invoke the Symbol constructor in JS and return the JS object corresponding to the symbol created.

pub fn from_serde<T: ?Sized>(t: &T) -> Result<JsValue> where
    T: Serialize
[src]

Creates a new JsValue from the JSON serialization of the object t provided.

This function will serialize the provided value t to a JSON string, send the JSON string to JS, parse it into a JS object, and then return a handle to the JS object. This is unlikely to be super speedy so it’s not recommended for large payloads, but it’s a nice to have in some situations!

Usage of this API requires activating the serde-serialize feature of the wasm-bindgen crate.

Errors

Returns any error encountered when serializing T into JSON.

pub fn into_serde<T>(&self) -> Result<T> where
    T: for<'a> Deserialize<'a>, 
[src]

Invokes JSON.stringify on this value and then parses the resulting JSON into an arbitrary Rust value.

This function will first call JSON.stringify on the JsValue itself. The resulting string is then passed into Rust which then parses it as JSON into the resulting value.

Usage of this API requires activating the serde-serialize feature of the wasm-bindgen crate.

Errors

Returns any error encountered when parsing the JSON into a T.

pub fn as_f64(&self) -> Option<f64>[src]

Returns the f64 value of this JS value if it’s an instance of a number.

If this JS value is not an instance of a number then this returns None.

pub fn is_string(&self) -> bool[src]

Tests whether this JS value is a JS string.

pub fn as_string(&self) -> Option<String>[src]

If this JS value is a string value, this function copies the JS string value into wasm linear memory, encoded as UTF-8, and returns it as a Rust String.

To avoid the copying and re-encoding, consider the JsString::try_from() function from js-sys instead.

If this JS value is not an instance of a string or if it’s not valid utf-8 then this returns None.

UTF-16 vs UTF-8

JavaScript strings in general are encoded as UTF-16, but Rust strings are encoded as UTF-8. This can cause the Rust string to look a bit different than the JS string sometimes. For more details see the documentation about the str type which contains a few caveats about the encodings.

pub fn as_bool(&self) -> Option<bool>[src]

Returns the bool value of this JS value if it’s an instance of a boolean.

If this JS value is not an instance of a boolean then this returns None.

pub fn is_null(&self) -> bool[src]

Tests whether this JS value is null

pub fn is_undefined(&self) -> bool[src]

Tests whether this JS value is undefined

pub fn is_symbol(&self) -> bool[src]

Tests whether the type of this JS value is symbol

pub fn is_object(&self) -> bool[src]

Tests whether typeof self == "object" && self !== null.

pub fn is_function(&self) -> bool[src]

Tests whether the type of this JS value is function.

pub fn is_truthy(&self) -> bool[src]

Tests whether the value is “truthy”.

pub fn is_falsy(&self) -> bool[src]

Tests whether the value is “falsy”.

Trait Implementations

impl<T: ?Sized> AsRef<JsValue> for Closure<T>[src]

fn as_ref(&self) -> &JsValue[src]

Performs the conversion.

impl AsRef<JsValue> for JsValue[src]

fn as_ref(&self) -> &JsValue[src]

Performs the conversion.

impl Clone for JsValue[src]

fn clone(&self) -> JsValue[src]

Returns a copy of the value. Read more

fn clone_from(&mut self, source: &Self)1.0.0[src]

Performs copy-assignment from source. Read more

impl Debug for JsValue[src]

fn fmt(&self, f: &mut Formatter<'_>) -> Result[src]

Formats the value using the given formatter. Read more

impl Drop for JsValue[src]

fn drop(&mut self)[src]

Executes the destructor for this type. Read more

impl<'a> From<&'a String> for JsValue[src]

fn from(s: &'a String) -> JsValue[src]

Performs the conversion.

impl<'a, T> From<&'a T> for JsValue where
    T: JsCast
[src]

fn from(s: &'a T) -> JsValue[src]

Performs the conversion.

impl<'a> From<&'a str> for JsValue[src]

fn from(s: &'a str) -> JsValue[src]

Performs the conversion.

impl<T> From<Option<T>> for JsValue where
    JsValue: From<T>, 
[src]

fn from(s: Option<T>) -> JsValue[src]

Performs the conversion.

impl From<String> for JsValue[src]

fn from(s: String) -> JsValue[src]

Performs the conversion.

impl From<bool> for JsValue[src]

fn from(s: bool) -> JsValue[src]

Performs the conversion.

impl From<f32> for JsValue[src]

fn from(n: f32) -> JsValue[src]

Performs the conversion.

impl From<f64> for JsValue[src]

fn from(n: f64) -> JsValue[src]

Performs the conversion.

impl From<i16> for JsValue[src]

fn from(n: i16) -> JsValue[src]

Performs the conversion.

impl From<i32> for JsValue[src]

fn from(n: i32) -> JsValue[src]

Performs the conversion.

impl From<i8> for JsValue[src]

fn from(n: i8) -> JsValue[src]

Performs the conversion.

impl From<u16> for JsValue[src]

fn from(n: u16) -> JsValue[src]

Performs the conversion.

impl From<u32> for JsValue[src]

fn from(n: u32) -> JsValue[src]

Performs the conversion.

impl From<u8> for JsValue[src]

fn from(n: u8) -> JsValue[src]

Performs the conversion.

impl FromWasmAbi for JsValue[src]

type Abi = u32

The wasm ABI type that this converts from when coming back out from the ABI boundary. Read more

unsafe fn from_abi(js: u32) -> JsValue[src]

Recover a Self from Self::Abi. Read more

impl IntoWasmAbi for JsValue[src]

type Abi = u32

The wasm ABI type that this converts into when crossing the ABI boundary. Read more

fn into_abi(self) -> u32[src]

Convert self into Self::Abi so that it can be sent across the wasm ABI boundary. Read more

impl<'a> IntoWasmAbi for &'a JsValue[src]

type Abi = u32

The wasm ABI type that this converts into when crossing the ABI boundary. Read more

fn into_abi(self) -> u32[src]

Convert self into Self::Abi so that it can be sent across the wasm ABI boundary. Read more

impl JsCast for JsValue[src]

fn instanceof(_val: &JsValue) -> bool[src]

Performs a dynamic instanceof check to see whether the JsValue provided is an instance of this type. Read more

fn unchecked_from_js(val: JsValue) -> Self[src]

Performs a zero-cost unchecked conversion from a JsValue into an instance of Self Read more

fn unchecked_from_js_ref(val: &JsValue) -> &Self[src]

Performs a zero-cost unchecked conversion from a &JsValue into an instance of &Self. Read more

fn has_type<T>(&self) -> bool where
    T: JsCast
[src]

Test whether this JS value has a type T. Read more

fn dyn_into<T>(self) -> Result<T, Self> where
    T: JsCast
[src]

Performs a dynamic cast (checked at runtime) of this value into the target type T. Read more

fn dyn_ref<T>(&self) -> Option<&T> where
    T: JsCast
[src]

Performs a dynamic cast (checked at runtime) of this value into the target type T. Read more

fn unchecked_into<T>(self) -> T where
    T: JsCast
[src]

Performs a zero-cost unchecked cast into the specified type. Read more

fn unchecked_ref<T>(&self) -> &T where
    T: JsCast
[src]

Performs a zero-cost unchecked cast into a reference to the specified type. Read more

fn is_instance_of<T>(&self) -> bool where
    T: JsCast
[src]

Test whether this JS value is an instance of the type T. Read more

fn is_type_of(val: &JsValue) -> bool[src]

Performs a dynamic check to see whether the JsValue provided is a value of this type. Read more

impl<'a> PartialEq<&'a String> for JsValue[src]

fn eq(&self, other: &&'a String) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl<'a> PartialEq<&'a str> for JsValue[src]

fn eq(&self, other: &&'a str) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl PartialEq<JsValue> for JsValue[src]

fn eq(&self, other: &JsValue) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl PartialEq<String> for JsValue[src]

fn eq(&self, other: &String) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl PartialEq<bool> for JsValue[src]

fn eq(&self, other: &bool) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl PartialEq<f32> for JsValue[src]

fn eq(&self, other: &f32) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl PartialEq<f64> for JsValue[src]

fn eq(&self, other: &f64) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl PartialEq<i16> for JsValue[src]

fn eq(&self, other: &i16) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl PartialEq<i32> for JsValue[src]

fn eq(&self, other: &i32) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl PartialEq<i8> for JsValue[src]

fn eq(&self, other: &i8) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl PartialEq<str> for JsValue[src]

fn eq(&self, other: &str) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl PartialEq<u16> for JsValue[src]

fn eq(&self, other: &u16) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl PartialEq<u32> for JsValue[src]

fn eq(&self, other: &u32) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl PartialEq<u8> for JsValue[src]

fn eq(&self, other: &u8) -> bool[src]

This method tests for self and other values to be equal, and is used by ==. Read more

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0[src]

This method tests for !=.

impl RefFromWasmAbi for JsValue[src]

type Abi = u32

The wasm ABI type references to Self are recovered from.

type Anchor = ManuallyDrop<JsValue>

The type that holds the reference to Self for the duration of the invocation of the function that has an &Self parameter. This is required to ensure that the lifetimes don’t persist beyond one function call, and so that they remain anonymous. Read more

unsafe fn ref_from_abi(js: u32) -> Self::Anchor[src]

Recover a Self::Anchor from Self::Abi. Read more

Auto Trait Implementations

impl RefUnwindSafe for JsValue

impl !Send for JsValue

impl !Sync for JsValue

impl Unpin for JsValue

impl UnwindSafe for JsValue

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

pub fn type_id(&self) -> TypeId[src]

Gets the TypeId of self. Read more

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

pub fn borrow(&self) -> &T[src]

Immutably borrows from an owned value. Read more

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

pub fn borrow_mut(&mut self) -> &mut T[src]

Mutably borrows from an owned value. Read more

impl<T> From<T> for T[src]

pub fn from(t: T) -> T[src]

Performs the conversion.

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

pub fn into(self) -> U[src]

Performs the conversion.

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

The resulting type after obtaining ownership.

pub fn to_owned(&self) -> T[src]

Creates owned data from borrowed data, usually by cloning. Read more

pub fn clone_into(&self, target: &mut T)[src]

🔬 This is a nightly-only experimental API. (toowned_clone_into)

recently added

Uses borrowed data to replace owned data, usually by cloning. Read more

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

pub fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>[src]

Performs the conversion.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.

pub fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>[src]

Performs the conversion.