Struct mozjs::jsapi::js::ClassExtension
source · #[repr(C)]pub struct ClassExtension {
pub objectMovedOp: Option<unsafe extern "C" fn(_: *mut JSObject, _: *mut JSObject) -> usize>,
}
Fields§
§objectMovedOp: Option<unsafe extern "C" fn(_: *mut JSObject, _: *mut JSObject) -> usize>
Optional hook called when an object is moved by generational or compacting GC.
There may exist weak pointers to an object that are not traced through when the normal trace APIs are used, for example objects in the wrapper cache. This hook allows these pointers to be updated.
Note that this hook can be called before JS_NewObject() returns if a GC is triggered during construction of the object. This can happen for global objects for example.
The function should return the difference between nursery bytes used and tenured bytes used, which may be nonzero e.g. if some nursery-allocated data beyond the actual GC thing is moved into malloced memory.
This is used to compute the nursery promotion rate.
Trait Implementations§
source§impl Clone for ClassExtension
impl Clone for ClassExtension
source§fn clone(&self) -> ClassExtension
fn clone(&self) -> ClassExtension
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moresource§impl Debug for ClassExtension
impl Debug for ClassExtension
source§impl PartialEq for ClassExtension
impl PartialEq for ClassExtension
impl Copy for ClassExtension
impl StructuralPartialEq for ClassExtension
Auto Trait Implementations§
impl Freeze for ClassExtension
impl RefUnwindSafe for ClassExtension
impl Send for ClassExtension
impl Sync for ClassExtension
impl Unpin for ClassExtension
impl UnwindSafe for ClassExtension
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
Mutably borrows from an owned value. Read more
source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
🔬This is a nightly-only experimental API. (
clone_to_uninit
)source§impl<T> Filterable for T
impl<T> Filterable for T
source§fn filterable(
self,
filter_name: &'static str,
) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
fn filterable( self, filter_name: &'static str, ) -> RequestFilterDataProvider<T, fn(_: DataRequest<'_>) -> bool>
Creates a filterable data provider with the given name for debugging. Read more
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more