pub struct FinalizationRegistry { /* private fields */ }Expand description
The FinalizationRegistry object lets you request a callback when an
object is garbage-collected.
FinalizationRegistry provides a way to request that a cleanup
callback get called at some point when an object registered with the
registry has been reclaimed (garbage-collected). Cleanup callbacks
are sometimes called finalizers.
Avoid where possible: cleanup callbacks should not be relied upon for anything essential. They are best used to reduce memory usage over the course of a program for objects that benefit from cleanup. Whether, when, and in what order callbacks fire is implementation-defined.
Implementations§
Source§impl FinalizationRegistry
impl FinalizationRegistry
Sourcepub fn new(
cleanup_callback: &Function<fn(JsValue) -> Undefined>,
) -> FinalizationRegistry
pub fn new( cleanup_callback: &Function<fn(JsValue) -> Undefined>, ) -> FinalizationRegistry
Creates a new FinalizationRegistry with the given cleanup callback.
The cleanup callback is invoked, at some point after a registered
target is garbage-collected, with the held_value that was passed to
FinalizationRegistry::register. Because callbacks may be deferred
or skipped entirely, the callback should normally outlive the
FinalizationRegistry (for example by being created via
Function::from_closure).
Source§impl FinalizationRegistry
impl FinalizationRegistry
Source§impl FinalizationRegistry
impl FinalizationRegistry
Sourcepub fn register_with_token(
&self,
target: &JsValue,
held_value: &JsValue,
unregister_token: &JsValue,
)
pub fn register_with_token( &self, target: &JsValue, held_value: &JsValue, unregister_token: &JsValue, )
Registers target with this FinalizationRegistry, with an
unregister_token that can later be passed to
FinalizationRegistry::unregister to remove the registration.
target and unregister_token must be objects (or non-registered
symbols), and the same value may be passed for both.
Source§impl FinalizationRegistry
impl FinalizationRegistry
Sourcepub fn unregister(&self, unregister_token: &JsValue) -> bool
pub fn unregister(&self, unregister_token: &JsValue) -> bool
Unregisters all entries registered with this FinalizationRegistry
using unregister_token. Returns true if any cells were removed.
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>§
pub const NULL: JsValue
pub const UNDEFINED: JsValue
pub const TRUE: JsValue
pub const FALSE: 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<FinalizationRegistry> for FinalizationRegistry
impl AsRef<FinalizationRegistry> for FinalizationRegistry
Source§fn as_ref(&self) -> &FinalizationRegistry
fn as_ref(&self) -> &FinalizationRegistry
Source§impl AsRef<JsValue> for FinalizationRegistry
impl AsRef<JsValue> for FinalizationRegistry
Source§impl AsRef<Object> for FinalizationRegistry
impl AsRef<Object> for FinalizationRegistry
Source§impl Clone for FinalizationRegistry
impl Clone for FinalizationRegistry
Source§fn clone(&self) -> FinalizationRegistry
fn clone(&self) -> FinalizationRegistry
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 FinalizationRegistry
impl Debug for FinalizationRegistry
Source§impl Deref for FinalizationRegistry
impl Deref for FinalizationRegistry
Source§impl From<FinalizationRegistry> for JsValue
impl From<FinalizationRegistry> for JsValue
Source§fn from(obj: FinalizationRegistry) -> JsValue
fn from(obj: FinalizationRegistry) -> JsValue
Source§impl From<FinalizationRegistry> for Object
impl From<FinalizationRegistry> for Object
Source§fn from(obj: FinalizationRegistry) -> Object
fn from(obj: FinalizationRegistry) -> Object
Source§impl From<JsValue> for FinalizationRegistry
impl From<JsValue> for FinalizationRegistry
Source§impl FromWasmAbi for FinalizationRegistry
impl FromWasmAbi for FinalizationRegistry
Source§impl IntoJsGeneric for FinalizationRegistrywhere
FinalizationRegistry: JsGeneric,
impl IntoJsGeneric for FinalizationRegistrywhere
FinalizationRegistry: JsGeneric,
Source§type JsCanon = FinalizationRegistry
type JsCanon = FinalizationRegistry
JsGeneric form of this type.Source§fn to_js(self) -> FinalizationRegistry
fn to_js(self) -> FinalizationRegistry
JsGeneric value for self.Source§impl<'a> IntoWasmAbi for &'a FinalizationRegistry
impl<'a> IntoWasmAbi for &'a FinalizationRegistry
Source§impl IntoWasmAbi for FinalizationRegistry
impl IntoWasmAbi for FinalizationRegistry
Source§impl JsCast for FinalizationRegistry
impl JsCast for FinalizationRegistry
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) -> Self
fn unchecked_from_js(val: JsValue) -> Self
Source§fn unchecked_from_js_ref(val: &JsValue) -> &Self
fn unchecked_from_js_ref(val: &JsValue) -> &Self
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 FinalizationRegistry
impl LongRefFromWasmAbi for FinalizationRegistry
Source§type Anchor = FinalizationRegistry
type Anchor = FinalizationRegistry
RefFromWasmAbi::AnchorSource§unsafe fn long_ref_from_abi(js: Self::Abi) -> Self::Anchor
unsafe fn long_ref_from_abi(js: Self::Abi) -> Self::Anchor
RefFromWasmAbi::ref_from_abiSource§impl<'a> OptionIntoWasmAbi for &'a FinalizationRegistry
impl<'a> OptionIntoWasmAbi for &'a FinalizationRegistry
Source§impl PartialEq for FinalizationRegistry
impl PartialEq for FinalizationRegistry
Source§fn eq(&self, other: &FinalizationRegistry) -> bool
fn eq(&self, other: &FinalizationRegistry) -> bool
self and other values to be equal, and is used by ==.Source§impl Promising for FinalizationRegistry
impl Promising for FinalizationRegistry
Source§type Resolution = FinalizationRegistry
type Resolution = FinalizationRegistry
Source§impl RefFromWasmAbi for FinalizationRegistry
impl RefFromWasmAbi for FinalizationRegistry
Source§type Abi = <JsValue as RefFromWasmAbi>::Abi
type Abi = <JsValue as RefFromWasmAbi>::Abi
Self are recovered from.Source§type Anchor = ManuallyDrop<FinalizationRegistry>
type Anchor = ManuallyDrop<FinalizationRegistry>
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.impl Eq for FinalizationRegistry
impl StructuralPartialEq for FinalizationRegistry
impl UpcastFrom<FinalizationRegistry> for FinalizationRegistry
impl UpcastFrom<FinalizationRegistry> for JsOption<FinalizationRegistry>
impl UpcastFrom<FinalizationRegistry> for JsOption<Object>
impl UpcastFrom<FinalizationRegistry> for JsValue
impl UpcastFrom<FinalizationRegistry> for Object
Auto Trait Implementations§
impl Freeze for FinalizationRegistry
impl RefUnwindSafe for FinalizationRegistry
impl Send for FinalizationRegistry
impl Sync for FinalizationRegistry
impl Unpin for FinalizationRegistry
impl UnsafeUnpin for FinalizationRegistry
impl UnwindSafe for FinalizationRegistry
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,
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§impl<S, T> Upcast<T> for S
impl<S, T> Upcast<T> for S
Source§impl<T> VectorFromWasmAbi for Twhere
T: ErasableGeneric<Repr = JsValue> + WasmDescribe,
impl<T> VectorFromWasmAbi for Twhere
T: ErasableGeneric<Repr = JsValue> + WasmDescribe,
Source§impl<T> VectorIntoWasmAbi for Twhere
T: ErasableGeneric<Repr = JsValue> + WasmDescribe,
impl<T> VectorIntoWasmAbi for Twhere
T: ErasableGeneric<Repr = JsValue> + WasmDescribe,
Source§impl<T> VectorRefIntoWasmAbi for T
impl<T> VectorRefIntoWasmAbi for T
Source§fn slice_into_abi(slice: &[T]) -> WasmSlice
fn slice_into_abi(slice: &[T]) -> WasmSlice
Some(slice). The returned
WasmSlice is either a borrow of the input slice (primitive
case) or a buffer JS owns and frees (handle-shaped case).Source§fn slice_none() -> WasmSlicewhere
Self: Sized,
fn slice_none() -> WasmSlicewhere
Self: Sized,
None (used by Option<&[T]>). A null
WasmSlice (ptr == 0) is the convention shared with every
other vector-like ABI in the crate.