pub struct DisposableStack { /* private fields */ }Expand description
A DisposableStack aggregates disposable resources, disposing them
in reverse order of registration when dispose() is called.
Callbacks registered with adopt() and defer() run later, at
disposal time, so they are taken as ScopedClosures which must
outlive the stack’s disposal. A stack disposed within the scope its
closures live in needs nothing more. One that outlives that scope,
through move() or by being stored, needs 'static Closures
handed to JS with Closure::forget; a disposer runs once, so
Closure::once frees its captures as soon as it has run.
Implementations§
Source§impl DisposableStack
impl DisposableStack
Sourcepub fn new() -> DisposableStack
pub fn new() -> DisposableStack
Creates a new, empty DisposableStack.
Source§impl DisposableStack
impl DisposableStack
Source§impl DisposableStack
impl DisposableStack
Source§impl DisposableStack
impl DisposableStack
Source§impl DisposableStack
impl DisposableStack
Sourcepub fn adopt<'a, T>(
&self,
value: &T,
on_dispose: &ScopedClosure<'a, dyn FnMut(T)>,
) -> Result<T, JsValue>where
T: ErasableGenericBorrow<JsValue> + ErasableGenericOwn<JsValue>,
ScopedClosure<'a, dyn FnMut(T)>: ErasableGenericBorrow<ScopedClosure<'a, dyn FnMut(JsValue)>>,
pub fn adopt<'a, T>(
&self,
value: &T,
on_dispose: &ScopedClosure<'a, dyn FnMut(T)>,
) -> Result<T, JsValue>where
T: ErasableGenericBorrow<JsValue> + ErasableGenericOwn<JsValue>,
ScopedClosure<'a, dyn FnMut(T)>: ErasableGenericBorrow<ScopedClosure<'a, dyn FnMut(JsValue)>>,
The adopt() method registers a non-disposable value together with
a callback to dispose it, and returns the value.
Source§impl DisposableStack
impl DisposableStack
Source§impl DisposableStack
impl DisposableStack
Sourcepub fn move_(&self) -> Result<DisposableStack, JsValue>
pub fn move_(&self) -> Result<DisposableStack, JsValue>
The move() method transfers every resource into a new
DisposableStack, marking this one as disposed.
Methods from Deref<Target = Object>§
Sourcepub fn constructor(&self) -> Function
pub fn constructor(&self) -> Function
The constructor property returns a reference to the Object constructor
function that created the instance object.
Sourcepub fn has_own_property(&self, property: &JsValue) -> bool
👎Deprecated: Use Object::hasOwn instead.
pub fn has_own_property(&self, property: &JsValue) -> bool
Use Object::hasOwn instead.
The hasOwnProperty() method returns a boolean indicating whether the
object has the specified property as its own property (as opposed to
inheriting it).
Sourcepub fn is_prototype_of(&self, value: &JsValue) -> bool
pub fn is_prototype_of(&self, value: &JsValue) -> bool
The isPrototypeOf() method checks if an object exists in another
object’s prototype chain.
Sourcepub fn property_is_enumerable(&self, property: &JsValue) -> bool
pub fn property_is_enumerable(&self, property: &JsValue) -> bool
The propertyIsEnumerable() method returns a Boolean indicating
whether the specified property is enumerable.
Sourcepub fn to_locale_string(&self) -> JsString
pub fn to_locale_string(&self) -> JsString
The toLocaleString() method returns a string representing the object.
This method is meant to be overridden by derived objects for
locale-specific purposes.
Sourcepub fn to_string(&self) -> JsString
pub fn to_string(&self) -> JsString
The toString() method returns a string representing the object.
Sourcepub fn to_js_string(&self) -> JsString
pub fn to_js_string(&self) -> JsString
The toString() method returns a string representing the object.
Methods from Deref<Target = JsValue>§
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_null_or_undefined(&self) -> bool
pub fn is_null_or_undefined(&self) -> bool
Tests whether this JS value is null or 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 JsValues.
Sourcepub fn loose_eq(&self, other: &JsValue) -> bool
pub fn loose_eq(&self, other: &JsValue) -> bool
Compare two JsValues 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 JsValues.
Sourcepub fn checked_div(&self, rhs: &JsValue) -> JsValue
pub fn checked_div(&self, rhs: &JsValue) -> JsValue
Applies the binary / JS operator on two JsValues, 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 JsValues.
Sourcepub fn lt(&self, other: &JsValue) -> bool
pub fn lt(&self, other: &JsValue) -> bool
Applies the binary < JS operator on the two JsValues.
Sourcepub fn le(&self, other: &JsValue) -> bool
pub fn le(&self, other: &JsValue) -> bool
Applies the binary <= JS operator on the two JsValues.
Sourcepub fn ge(&self, other: &JsValue) -> bool
pub fn ge(&self, other: &JsValue) -> bool
Applies the binary >= JS operator on the two JsValues.
Sourcepub fn gt(&self, other: &JsValue) -> bool
pub fn gt(&self, other: &JsValue) -> bool
Applies the binary > JS operator on the two JsValues.
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§
Source§impl AsRef<DisposableStack> for DisposableStack
impl AsRef<DisposableStack> for DisposableStack
Source§fn as_ref(&self) -> &DisposableStack
fn as_ref(&self) -> &DisposableStack
Source§impl AsRef<JsValue> for DisposableStack
impl AsRef<JsValue> for DisposableStack
Source§impl AsRef<Object> for DisposableStack
impl AsRef<Object> for DisposableStack
Source§impl Clone for DisposableStack
impl Clone for DisposableStack
Source§fn clone(&self) -> DisposableStack
fn clone(&self) -> DisposableStack
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for DisposableStack
impl Debug for DisposableStack
Source§impl Default for DisposableStack
impl Default for DisposableStack
Source§fn default() -> DisposableStack
fn default() -> DisposableStack
Source§impl Deref for DisposableStack
impl Deref for DisposableStack
impl Eq for DisposableStack
Source§impl ErasableGeneric for DisposableStack
impl ErasableGeneric for DisposableStack
Source§impl From<DisposableStack> for JsValue
impl From<DisposableStack> for JsValue
Source§fn from(obj: DisposableStack) -> JsValue
fn from(obj: DisposableStack) -> JsValue
Source§impl From<DisposableStack> for Object
impl From<DisposableStack> for Object
Source§fn from(obj: DisposableStack) -> Object
fn from(obj: DisposableStack) -> Object
Source§impl From<JsValue> for DisposableStack
impl From<JsValue> for DisposableStack
Source§fn from(obj: JsValue) -> DisposableStack
fn from(obj: JsValue) -> DisposableStack
Source§impl FromWasmAbi for DisposableStack
impl FromWasmAbi for DisposableStack
Source§type Abi = <JsValue as FromWasmAbi>::Abi
type Abi = <JsValue as FromWasmAbi>::Abi
Source§unsafe fn from_abi(js: <DisposableStack as FromWasmAbi>::Abi) -> DisposableStack
unsafe fn from_abi(js: <DisposableStack as FromWasmAbi>::Abi) -> DisposableStack
Source§impl IntoJsGeneric for DisposableStackwhere
DisposableStack: JsGeneric,
impl IntoJsGeneric for DisposableStackwhere
DisposableStack: JsGeneric,
Source§type JsCanon = DisposableStack
type JsCanon = DisposableStack
JsGeneric form of this type.Source§fn to_js(self) -> DisposableStack
fn to_js(self) -> DisposableStack
JsGeneric value for self.Source§impl IntoWasmAbi for DisposableStack
impl IntoWasmAbi for DisposableStack
Source§type Abi = <JsValue as IntoWasmAbi>::Abi
type Abi = <JsValue as IntoWasmAbi>::Abi
Source§fn into_abi(self) -> <DisposableStack as IntoWasmAbi>::Abi
fn into_abi(self) -> <DisposableStack as IntoWasmAbi>::Abi
self into Self::Abi so that it can be sent across the wasm
ABI boundary.Source§impl<'__wbg_ref> IntoWasmAbi for &'__wbg_ref DisposableStack
impl<'__wbg_ref> IntoWasmAbi for &'__wbg_ref DisposableStack
Source§type Abi = <&'__wbg_ref JsValue as IntoWasmAbi>::Abi
type Abi = <&'__wbg_ref JsValue as IntoWasmAbi>::Abi
Source§fn into_abi(self) -> <&'__wbg_ref DisposableStack as IntoWasmAbi>::Abi
fn into_abi(self) -> <&'__wbg_ref DisposableStack as IntoWasmAbi>::Abi
self into Self::Abi so that it can be sent across the wasm
ABI boundary.Source§impl JsCast for DisposableStack
impl JsCast for DisposableStack
Source§fn instanceof(val: &JsValue) -> bool
fn instanceof(val: &JsValue) -> bool
instanceof check to see whether the JsValue
provided is an instance of this type. Read moreSource§fn unchecked_from_js(val: JsValue) -> DisposableStack
fn unchecked_from_js(val: JsValue) -> DisposableStack
Source§fn unchecked_from_js_ref(val: &JsValue) -> &DisposableStack
fn unchecked_from_js_ref(val: &JsValue) -> &DisposableStack
Source§fn has_type<T>(&self) -> boolwhere
T: JsCast,
fn has_type<T>(&self) -> boolwhere
T: JsCast,
T. Read moreSource§fn dyn_into<T>(self) -> Result<T, Self>where
T: JsCast,
fn dyn_into<T>(self) -> Result<T, Self>where
T: JsCast,
T. Read moreSource§fn dyn_ref<T>(&self) -> Option<&T>where
T: JsCast,
fn dyn_ref<T>(&self) -> Option<&T>where
T: JsCast,
T. Read moreSource§fn unchecked_into<T>(self) -> Twhere
T: JsCast,
fn unchecked_into<T>(self) -> Twhere
T: JsCast,
Source§fn unchecked_ref<T>(&self) -> &Twhere
T: JsCast,
fn unchecked_ref<T>(&self) -> &Twhere
T: JsCast,
Source§impl LongRefFromWasmAbi for DisposableStack
impl LongRefFromWasmAbi for DisposableStack
Source§type Anchor = DisposableStack
type Anchor = DisposableStack
RefFromWasmAbi::AnchorSource§unsafe fn long_ref_from_abi(
js: <DisposableStack as LongRefFromWasmAbi>::Abi,
) -> <DisposableStack as LongRefFromWasmAbi>::Anchor
unsafe fn long_ref_from_abi( js: <DisposableStack as LongRefFromWasmAbi>::Abi, ) -> <DisposableStack as LongRefFromWasmAbi>::Anchor
RefFromWasmAbi::ref_from_abiSource§impl NullableFromWasmAbi for DisposableStack
impl NullableFromWasmAbi for DisposableStack
Source§fn is_null(abi: &<DisposableStack as MaybeFromWasmAbi>::MaybeAbi) -> bool
fn is_null(abi: &<DisposableStack as MaybeFromWasmAbi>::MaybeAbi) -> bool
Nullable::Null.Source§impl NullableIntoWasmAbi for DisposableStack
impl NullableIntoWasmAbi for DisposableStack
Source§fn null() -> <DisposableStack as MaybeIntoWasmAbi>::MaybeAbi
fn null() -> <DisposableStack as MaybeIntoWasmAbi>::MaybeAbi
Source§impl<'__wbg_ref> NullableIntoWasmAbi for &'__wbg_ref DisposableStack
impl<'__wbg_ref> NullableIntoWasmAbi for &'__wbg_ref DisposableStack
Source§fn null() -> <&'__wbg_ref DisposableStack as MaybeIntoWasmAbi>::MaybeAbi
fn null() -> <&'__wbg_ref DisposableStack as MaybeIntoWasmAbi>::MaybeAbi
Source§impl OptionFromWasmAbi for DisposableStack
impl OptionFromWasmAbi for DisposableStack
Source§fn is_none(abi: &<DisposableStack as FromWasmAbi>::Abi) -> bool
fn is_none(abi: &<DisposableStack as FromWasmAbi>::Abi) -> bool
None, and otherwise it will be passed to
FromWasmAbi.Source§impl OptionIntoWasmAbi for DisposableStack
impl OptionIntoWasmAbi for DisposableStack
Source§fn none() -> <DisposableStack as IntoWasmAbi>::Abi
fn none() -> <DisposableStack as IntoWasmAbi>::Abi
None branch of this option. Read moreSource§impl<'__wbg_ref> OptionIntoWasmAbi for &'__wbg_ref DisposableStack
impl<'__wbg_ref> OptionIntoWasmAbi for &'__wbg_ref DisposableStack
Source§fn none() -> <&'__wbg_ref DisposableStack as IntoWasmAbi>::Abi
fn none() -> <&'__wbg_ref DisposableStack as IntoWasmAbi>::Abi
None branch of this option. Read moreSource§impl PartialEq for DisposableStack
impl PartialEq for DisposableStack
Source§impl Promising for DisposableStack
impl Promising for DisposableStack
Source§type Resolution = DisposableStack
type Resolution = DisposableStack
Source§impl RefFromWasmAbi for DisposableStack
impl RefFromWasmAbi for DisposableStack
Source§type Abi = <JsValue as RefFromWasmAbi>::Abi
type Abi = <JsValue as RefFromWasmAbi>::Abi
Self are recovered from.Source§type Anchor = ManuallyDrop<DisposableStack>
type Anchor = ManuallyDrop<DisposableStack>
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.Source§unsafe fn ref_from_abi(
js: <DisposableStack as RefFromWasmAbi>::Abi,
) -> <DisposableStack as RefFromWasmAbi>::Anchor
unsafe fn ref_from_abi( js: <DisposableStack as RefFromWasmAbi>::Abi, ) -> <DisposableStack as RefFromWasmAbi>::Anchor
impl UpcastFrom<DisposableStack> for JsValue
impl UpcastFrom<DisposableStack> for JsOption
impl UpcastFrom<DisposableStack> for JsNullable
impl<__UpcastWrapTarget> UpcastFrom<DisposableStack> for Option<__UpcastWrapTarget>where
__UpcastWrapTarget: UpcastFrom<DisposableStack>,
impl<__UpcastWrapTarget> UpcastFrom<DisposableStack> for Nullable<__UpcastWrapTarget>where
__UpcastWrapTarget: UpcastFrom<DisposableStack>,
impl UpcastFrom<DisposableStack> for DisposableStack
impl UpcastFrom<DisposableStack> for JsOption<DisposableStack>
impl UpcastFrom<DisposableStack> for JsNullable<DisposableStack>
impl UpcastFrom<DisposableStack> for Object
impl UpcastFrom<DisposableStack> for JsOption<Object>
impl UpcastFrom<DisposableStack> for JsNullable<Object>
Source§impl VectorRefIntoWasmAbi for DisposableStack
impl VectorRefIntoWasmAbi for DisposableStack
fn slice_into_abi(slice: &[DisposableStack]) -> WasmSlice
Auto Trait Implementations§
impl Freeze for DisposableStack
impl RefUnwindSafe for DisposableStack
impl Send for DisposableStack
impl Sync for DisposableStack
impl Unpin for DisposableStack
impl UnsafeUnpin for DisposableStack
impl UnwindSafe for DisposableStack
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> JsGeneric for T
Source§impl<T> MaybeFromWasmAbi for Twhere
T: OptionFromWasmAbi,
impl<T> MaybeFromWasmAbi for Twhere
T: OptionFromWasmAbi,
Source§type MaybeAbi = <T as FromWasmAbi>::Abi
type MaybeAbi = <T as FromWasmAbi>::Abi
Option<Self>.Source§unsafe fn from_maybe_abi(js: <T as FromWasmAbi>::Abi) -> T
unsafe fn from_maybe_abi(js: <T as FromWasmAbi>::Abi) -> T
unsafe fn try_from_maybe_abi( js: <T as FromWasmAbi>::Abi, ) -> Result<T, &'static str>
Source§impl<T> MaybeIntoWasmAbi for Twhere
T: OptionIntoWasmAbi,
impl<T> MaybeIntoWasmAbi for Twhere
T: OptionIntoWasmAbi,
Source§type MaybeAbi = <T as IntoWasmAbi>::Abi
type MaybeAbi = <T as IntoWasmAbi>::Abi
Option<Self>.Source§fn into_maybe_abi(self) -> <T as IntoWasmAbi>::Abi
fn into_maybe_abi(self) -> <T as IntoWasmAbi>::Abi
Option<Self> ABI.Source§impl<T, A> RefIntoWasmAbi for T
impl<T, A> RefIntoWasmAbi for T
Source§fn describe_ref()
fn describe_ref()
&Self.Source§fn ref_into_abi(&self) -> A
fn ref_into_abi(&self) -> A
&self into Self::Abi.Source§impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
impl<T> ReturnWasmAbi for Twhere
T: IntoWasmAbi,
Source§type Abi = <T as IntoWasmAbi>::Abi
type Abi = <T as IntoWasmAbi>::Abi
IntoWasmAbi::AbiSource§fn 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.Source§impl<T> TryFromJsValue for Twhere
T: JsCast,
impl<T> TryFromJsValue for Twhere
T: JsCast,
Source§fn try_from_js_value_ref(val: &JsValue) -> Option<T>
fn try_from_js_value_ref(val: &JsValue) -> Option<T>
Source§const NULLABLE: bool = false
const NULLABLE: bool = false
Self accepts null as a distinct value space, as
Nullable<T> does. An enclosing Option then passes null through
instead of reading it as None, so Option<T> is itself nullable
exactly when T is not. JsValue does not set this: it accepts
null as one value among all of them, not as a distinct space, and
Option<JsValue> reads it as None like the ABI does. This is the
JS-value side of NullableFromWasmAbi, which claims null at the
ABI.