pub struct JsValue { /* private fields */ }
Expand description
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
sourceimpl JsValue
impl JsValue
sourcepub const NULL: JsValue = JsValue{ idx: JSIDX_NULL, _marker: marker::PhantomData,}
pub const NULL: JsValue = JsValue{ idx: JSIDX_NULL, _marker: marker::PhantomData,}
The null
JS value constant.
sourcepub const UNDEFINED: JsValue = JsValue{ idx: JSIDX_UNDEFINED, _marker: marker::PhantomData,}
pub const UNDEFINED: JsValue = JsValue{ idx: JSIDX_UNDEFINED, _marker: marker::PhantomData,}
The undefined
JS value constant.
sourcepub const TRUE: JsValue = JsValue{ idx: JSIDX_TRUE, _marker: marker::PhantomData,}
pub const TRUE: JsValue = JsValue{ idx: JSIDX_TRUE, _marker: marker::PhantomData,}
The true
JS value constant.
sourcepub const FALSE: JsValue = JsValue{ idx: JSIDX_FALSE, _marker: marker::PhantomData,}
pub const FALSE: JsValue = JsValue{ idx: JSIDX_FALSE, _marker: marker::PhantomData,}
The false
JS value constant.
sourcepub fn from_str(s: &str) -> JsValue
pub fn from_str(s: &str) -> JsValue
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.
sourcepub fn from_f64(n: f64) -> JsValue
pub fn from_f64(n: f64) -> JsValue
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.
sourcepub fn bigint_from_str(s: &str) -> JsValue
pub fn bigint_from_str(s: &str) -> JsValue
Creates a new JS value which is a bigint from a string representing a number.
This function creates a JS value representing a bigint (a heap allocated large integer) and returns a handle to the JS version of it.
sourcepub fn from_bool(b: bool) -> JsValue
pub fn from_bool(b: bool) -> JsValue
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.
sourcepub fn symbol(description: Option<&str>) -> JsValue
pub fn symbol(description: Option<&str>) -> JsValue
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.
sourcepub fn from_serde<T>(t: &T) -> Result<JsValue, Error>where
T: Serialize + ?Sized,
👎Deprecated: causes dependency cycles, use serde-wasm-bindgen
or gloo_utils::format::JsValueSerdeExt
instead
pub fn from_serde<T>(t: &T) -> Result<JsValue, Error>where
T: Serialize + ?Sized,
serde-wasm-bindgen
or gloo_utils::format::JsValueSerdeExt
insteadCreates a new JsValue
from the JSON serialization of the object t
provided.
This function is deprecated, due to creating a dependency cycle in
some circumstances. Use serde-wasm-bindgen
or
gloo_utils::format::JsValueSerdeExt
instead.
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.
sourcepub fn into_serde<T>(&self) -> Result<T, Error>where
T: for<'a> Deserialize<'a>,
👎Deprecated: causes dependency cycles, use serde-wasm-bindgen
or gloo_utils::format::JsValueSerdeExt
instead
pub fn into_serde<T>(&self) -> Result<T, Error>where
T: for<'a> Deserialize<'a>,
serde-wasm-bindgen
or gloo_utils::format::JsValueSerdeExt
insteadInvokes JSON.stringify
on this value and then parses the resulting
JSON into an arbitrary Rust value.
This function is deprecated, due to creating a dependency cycle in
some circumstances. Use serde-wasm-bindgen
or
gloo_utils::format::JsValueSerdeExt
instead.
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
.
sourcepub fn as_f64(&self) -> Option<f64>
pub fn as_f64(&self) -> Option<f64>
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
.
sourcepub fn as_string(&self) -> Option<String>
pub fn as_string(&self) -> Option<String>
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.
sourcepub fn as_bool(&self) -> Option<bool>
pub fn as_bool(&self) -> Option<bool>
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
.
sourcepub fn is_undefined(&self) -> bool
pub fn is_undefined(&self) -> bool
Tests whether this JS value is undefined
sourcepub fn is_function(&self) -> bool
pub fn is_function(&self) -> bool
Tests whether the type of this JS value is function
.
sourcepub fn js_in(&self, obj: &JsValue) -> bool
pub fn js_in(&self, obj: &JsValue) -> bool
Applies the binary in
JS operator on the two JsValue
s.
sourcepub fn loose_eq(&self, other: &JsValue) -> bool
pub fn loose_eq(&self, other: &JsValue) -> bool
Compare two JsValue
s for equality, using the ==
operator in JS.
sourcepub fn unsigned_shr(&self, rhs: &JsValue) -> u32
pub fn unsigned_shr(&self, rhs: &JsValue) -> u32
Applies the binary >>>
JS operator on the two JsValue
s.
sourcepub fn checked_div(&self, rhs: &JsValue) -> JsValue
pub fn checked_div(&self, rhs: &JsValue) -> JsValue
Applies the binary /
JS operator on two JsValue
s, catching and returning any RangeError
thrown.
sourcepub fn pow(&self, rhs: &JsValue) -> JsValue
pub fn pow(&self, rhs: &JsValue) -> JsValue
Applies the binary **
JS operator on the two JsValue
s.
sourcepub fn lt(&self, other: &JsValue) -> bool
pub fn lt(&self, other: &JsValue) -> bool
Applies the binary <
JS operator on the two JsValue
s.
sourcepub fn le(&self, other: &JsValue) -> bool
pub fn le(&self, other: &JsValue) -> bool
Applies the binary <=
JS operator on the two JsValue
s.
sourcepub fn ge(&self, other: &JsValue) -> bool
pub fn ge(&self, other: &JsValue) -> bool
Applies the binary >=
JS operator on the two JsValue
s.
sourcepub fn gt(&self, other: &JsValue) -> bool
pub fn gt(&self, other: &JsValue) -> bool
Applies the binary >
JS operator on the two JsValue
s.
sourcepub fn unchecked_into_f64(&self) -> f64
pub fn unchecked_into_f64(&self) -> f64
Applies the unary +
JS operator on a JsValue
. Can throw.
Trait Implementations
sourceimpl AsRef<JsValue> for CharacterData
impl AsRef<JsValue> for CharacterData
sourceimpl AsRef<JsValue> for EventTarget
impl AsRef<JsValue> for EventTarget
sourceimpl AsRef<JsValue> for HtmlElement
impl AsRef<JsValue> for HtmlElement
sourceimpl From<ArrayBuffer> for JsValue
impl From<ArrayBuffer> for JsValue
sourcefn from(obj: ArrayBuffer) -> JsValue
fn from(obj: ArrayBuffer) -> JsValue
sourceimpl From<AsyncIterator> for JsValue
impl From<AsyncIterator> for JsValue
sourcefn from(obj: AsyncIterator) -> JsValue
fn from(obj: AsyncIterator) -> JsValue
sourceimpl From<BigInt64Array> for JsValue
impl From<BigInt64Array> for JsValue
sourcefn from(obj: BigInt64Array) -> JsValue
fn from(obj: BigInt64Array) -> JsValue
sourceimpl From<BigUint64Array> for JsValue
impl From<BigUint64Array> for JsValue
sourcefn from(obj: BigUint64Array) -> JsValue
fn from(obj: BigUint64Array) -> JsValue
sourceimpl From<CharacterData> for JsValue
impl From<CharacterData> for JsValue
sourcefn from(obj: CharacterData) -> JsValue
fn from(obj: CharacterData) -> JsValue
sourceimpl From<CompileError> for JsValue
impl From<CompileError> for JsValue
sourcefn from(obj: CompileError) -> JsValue
fn from(obj: CompileError) -> JsValue
sourceimpl From<DateTimeFormat> for JsValue
impl From<DateTimeFormat> for JsValue
sourcefn from(obj: DateTimeFormat) -> JsValue
fn from(obj: DateTimeFormat) -> JsValue
sourceimpl From<EventTarget> for JsValue
impl From<EventTarget> for JsValue
sourcefn from(obj: EventTarget) -> JsValue
fn from(obj: EventTarget) -> JsValue
sourceimpl From<Float32Array> for JsValue
impl From<Float32Array> for JsValue
sourcefn from(obj: Float32Array) -> JsValue
fn from(obj: Float32Array) -> JsValue
sourceimpl From<Float64Array> for JsValue
impl From<Float64Array> for JsValue
sourcefn from(obj: Float64Array) -> JsValue
fn from(obj: Float64Array) -> JsValue
sourceimpl From<HtmlButtonElement> for JsValue
impl From<HtmlButtonElement> for JsValue
sourcefn from(obj: HtmlButtonElement) -> JsValue
fn from(obj: HtmlButtonElement) -> JsValue
sourceimpl From<HtmlCollection> for JsValue
impl From<HtmlCollection> for JsValue
sourcefn from(obj: HtmlCollection) -> JsValue
fn from(obj: HtmlCollection) -> JsValue
sourceimpl From<HtmlElement> for JsValue
impl From<HtmlElement> for JsValue
sourcefn from(obj: HtmlElement) -> JsValue
fn from(obj: HtmlElement) -> JsValue
sourceimpl From<HtmlInputElement> for JsValue
impl From<HtmlInputElement> for JsValue
sourcefn from(obj: HtmlInputElement) -> JsValue
fn from(obj: HtmlInputElement) -> JsValue
sourceimpl From<HtmlSelectElement> for JsValue
impl From<HtmlSelectElement> for JsValue
sourcefn from(obj: HtmlSelectElement) -> JsValue
fn from(obj: HtmlSelectElement) -> JsValue
sourceimpl From<HtmlTextAreaElement> for JsValue
impl From<HtmlTextAreaElement> for JsValue
sourcefn from(obj: HtmlTextAreaElement) -> JsValue
fn from(obj: HtmlTextAreaElement) -> JsValue
sourceimpl From<InputEvent> for JsValue
impl From<InputEvent> for JsValue
sourcefn from(obj: InputEvent) -> JsValue
fn from(obj: InputEvent) -> JsValue
sourceimpl From<Int16Array> for JsValue
impl From<Int16Array> for JsValue
sourcefn from(obj: Int16Array) -> JsValue
fn from(obj: Int16Array) -> JsValue
sourceimpl From<Int32Array> for JsValue
impl From<Int32Array> for JsValue
sourcefn from(obj: Int32Array) -> JsValue
fn from(obj: Int32Array) -> JsValue
sourceimpl From<IteratorNext> for JsValue
impl From<IteratorNext> for JsValue
sourcefn from(obj: IteratorNext) -> JsValue
fn from(obj: IteratorNext) -> JsValue
sourceimpl From<JsValue> for CharacterData
impl From<JsValue> for CharacterData
sourcefn from(obj: JsValue) -> CharacterData
fn from(obj: JsValue) -> CharacterData
sourceimpl From<JsValue> for EventTarget
impl From<JsValue> for EventTarget
sourcefn from(obj: JsValue) -> EventTarget
fn from(obj: JsValue) -> EventTarget
sourceimpl From<JsValue> for HtmlElement
impl From<JsValue> for HtmlElement
sourcefn from(obj: JsValue) -> HtmlElement
fn from(obj: JsValue) -> HtmlElement
sourceimpl From<KeyboardEvent> for JsValue
impl From<KeyboardEvent> for JsValue
sourcefn from(obj: KeyboardEvent) -> JsValue
fn from(obj: KeyboardEvent) -> JsValue
sourceimpl From<MessageEvent> for JsValue
impl From<MessageEvent> for JsValue
sourcefn from(obj: MessageEvent) -> JsValue
fn from(obj: MessageEvent) -> JsValue
sourceimpl From<MouseEvent> for JsValue
impl From<MouseEvent> for JsValue
sourcefn from(obj: MouseEvent) -> JsValue
fn from(obj: MouseEvent) -> JsValue
sourceimpl From<NumberFormat> for JsValue
impl From<NumberFormat> for JsValue
sourcefn from(obj: NumberFormat) -> JsValue
fn from(obj: NumberFormat) -> JsValue
sourceimpl From<Performance> for JsValue
impl From<Performance> for JsValue
sourcefn from(obj: Performance) -> JsValue
fn from(obj: Performance) -> JsValue
sourceimpl From<PluralRules> for JsValue
impl From<PluralRules> for JsValue
sourcefn from(obj: PluralRules) -> JsValue
fn from(obj: PluralRules) -> JsValue
sourceimpl From<PopStateEvent> for JsValue
impl From<PopStateEvent> for JsValue
sourcefn from(obj: PopStateEvent) -> JsValue
fn from(obj: PopStateEvent) -> JsValue
sourceimpl From<RangeError> for JsValue
impl From<RangeError> for JsValue
sourcefn from(obj: RangeError) -> JsValue
fn from(obj: RangeError) -> JsValue
sourceimpl From<ReferenceError> for JsValue
impl From<ReferenceError> for JsValue
sourcefn from(obj: ReferenceError) -> JsValue
fn from(obj: ReferenceError) -> JsValue
sourceimpl From<RequestInit> for JsValue
impl From<RequestInit> for JsValue
sourcefn from(obj: RequestInit) -> JsValue
fn from(obj: RequestInit) -> JsValue
sourceimpl From<RequestMode> for JsValue
impl From<RequestMode> for JsValue
sourcefn from(obj: RequestMode) -> JsValue
fn from(obj: RequestMode) -> JsValue
sourceimpl From<RuntimeError> for JsValue
impl From<RuntimeError> for JsValue
sourcefn from(obj: RuntimeError) -> JsValue
fn from(obj: RuntimeError) -> JsValue
sourcefn from(obj: SharedArrayBuffer) -> JsValue
fn from(obj: SharedArrayBuffer) -> JsValue
sourceimpl From<SyntaxError> for JsValue
impl From<SyntaxError> for JsValue
sourcefn from(obj: SyntaxError) -> JsValue
fn from(obj: SyntaxError) -> JsValue
sourceimpl From<Uint16Array> for JsValue
impl From<Uint16Array> for JsValue
sourcefn from(obj: Uint16Array) -> JsValue
fn from(obj: Uint16Array) -> JsValue
sourceimpl From<Uint32Array> for JsValue
impl From<Uint32Array> for JsValue
sourcefn from(obj: Uint32Array) -> JsValue
fn from(obj: Uint32Array) -> JsValue
sourceimpl From<Uint8Array> for JsValue
impl From<Uint8Array> for JsValue
sourcefn from(obj: Uint8Array) -> JsValue
fn from(obj: Uint8Array) -> JsValue
sourceimpl From<Uint8ClampedArray> for JsValue
impl From<Uint8ClampedArray> for JsValue
sourcefn from(obj: Uint8ClampedArray) -> JsValue
fn from(obj: Uint8ClampedArray) -> JsValue
sourceimpl FromWasmAbi for JsValue
impl FromWasmAbi for JsValue
sourceimpl<'a> IntoWasmAbi for &'a JsValue
impl<'a> IntoWasmAbi for &'a JsValue
sourceimpl IntoWasmAbi for JsValue
impl IntoWasmAbi for JsValue
sourceimpl JsCast for JsValue
impl JsCast for JsValue
sourcefn instanceof(_val: &JsValue) -> bool
fn instanceof(_val: &JsValue) -> bool
instanceof
check to see whether the JsValue
provided is an instance of this type. Read moresourcefn unchecked_from_js(val: JsValue) -> JsValue
fn unchecked_from_js(val: JsValue) -> JsValue
sourcefn unchecked_from_js_ref(val: &JsValue) -> &JsValue
fn unchecked_from_js_ref(val: &JsValue) -> &JsValue
sourcefn has_type<T>(&self) -> boolwhere
T: JsCast,
fn has_type<T>(&self) -> boolwhere
T: JsCast,
T
. Read moresourcefn dyn_into<T>(self) -> Result<T, Self>where
T: JsCast,
fn dyn_into<T>(self) -> Result<T, Self>where
T: JsCast,
T
. Read moresourcefn dyn_ref<T>(&self) -> Option<&T>where
T: JsCast,
fn dyn_ref<T>(&self) -> Option<&T>where
T: JsCast,
T
. Read moresourcefn unchecked_into<T>(self) -> Twhere
T: JsCast,
fn unchecked_into<T>(self) -> Twhere
T: JsCast,
sourcefn unchecked_ref<T>(&self) -> &Twhere
T: JsCast,
fn unchecked_ref<T>(&self) -> &Twhere
T: JsCast,
sourcefn is_instance_of<T>(&self) -> boolwhere
T: JsCast,
fn is_instance_of<T>(&self) -> boolwhere
T: JsCast,
T
. Read moresourcefn is_type_of(val: &JsValue) -> bool
fn is_type_of(val: &JsValue) -> bool
JsValue
provided
is a value of this type. Read moresourceimpl PartialEq<JsValue> for JsValue
impl PartialEq<JsValue> for JsValue
sourceimpl RefFromWasmAbi for JsValue
impl RefFromWasmAbi for JsValue
type Anchor = ManuallyDrop<JsValue>
type Anchor = ManuallyDrop<JsValue>
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 moresourceunsafe fn ref_from_abi(js: u32) -> <JsValue as RefFromWasmAbi>::Anchor
unsafe fn ref_from_abi(js: u32) -> <JsValue as RefFromWasmAbi>::Anchor
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
sourceimpl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
sourceimpl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
type Abi = <T as IntoWasmAbi>::Abi
type Abi = <T as IntoWasmAbi>::Abi
IntoWasmAbi::Abi
sourcefn return_abi(self) -> <T as ReturnWasmAbi>::Abi
fn return_abi(self) -> <T as ReturnWasmAbi>::Abi
IntoWasmAbi::into_abi
, except that it may throw and never
return in the case of Err
. Read more