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]
impl JsValue
[src]pub fn from_str(s: &str) -> JsValue
[src]
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]
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]
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 symbol(description: Option<&str>) -> JsValue
[src]
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]
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]
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]
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 as_string(&self) -> Option<String>
[src]
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]
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_undefined(&self) -> bool
[src]
pub fn is_undefined(&self) -> bool
[src]Tests whether this JS value is undefined
pub fn is_function(&self) -> bool
[src]
pub fn is_function(&self) -> bool
[src]Tests whether the type of this JS value is function
.
Trait Implementations
impl FromWasmAbi for JsValue
[src]
impl FromWasmAbi for JsValue
[src]impl IntoWasmAbi for JsValue
[src]
impl IntoWasmAbi for JsValue
[src]impl<'a> IntoWasmAbi for &'a JsValue
[src]
impl<'a> IntoWasmAbi for &'a JsValue
[src]impl JsCast for JsValue
[src]
impl JsCast for JsValue
[src]fn instanceof(_val: &JsValue) -> bool
[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]
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]
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]
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]
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]
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]
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]
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]
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]
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 RefFromWasmAbi for JsValue
[src]
impl RefFromWasmAbi for JsValue
[src]type Anchor = ManuallyDrop<JsValue>
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]
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> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
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]
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