pub struct PermanentRoot(Heap<JSVal>);Expand description
A manual GC root that will exist until this PermanentRoot is dropped. Maintains a GC root for the contained value until this object is dropped.
§Safety
The root (and the contained value) is only valid as long as this value is never moved after it is initialized. It should only be used inside of a container like Box or Rc and never extracted from it.
Tuple Fields§
§0: Heap<JSVal>Implementations§
Source§impl PermanentRoot
impl PermanentRoot
Sourcepub unsafe fn init(
&self,
cx: &JSContext,
object: *mut JSObject,
name: &'static CStr,
)
pub unsafe fn init( &self, cx: &JSContext, object: *mut JSObject, name: &'static CStr, )
Add a GC root for the provided JS object.
§Safety
- This method must only be called on a
PermanentRootthat will not move for the remainder of its lifetime (e.g. inside of Box, Rc, etc.) - This must only be called once per instance of
PermanentRoot
Trait Implementations§
Source§impl Default for PermanentRoot
impl Default for PermanentRoot
Source§fn default() -> PermanentRoot
fn default() -> PermanentRoot
Returns the “default value” for a type. Read more
Source§impl Drop for PermanentRoot
impl Drop for PermanentRoot
Source§impl MallocSizeOf for PermanentRoot
impl MallocSizeOf for PermanentRoot
Source§fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
fn size_of(&self, ops: &mut MallocSizeOfOps) -> usize
Measure the heap usage of all descendant heap-allocated structures, but
not the space taken up by the value itself.
Auto Trait Implementations§
impl !Freeze for PermanentRoot
impl !RefUnwindSafe for PermanentRoot
impl Send for PermanentRoot
impl !Sync for PermanentRoot
impl Unpin for PermanentRoot
impl UnsafeUnpin for PermanentRoot
impl UnwindSafe for PermanentRoot
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> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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 moreSource§impl<T> MaybeBoxed<Box<T>> for T
impl<T> MaybeBoxed<Box<T>> for T
Source§fn maybe_boxed(self) -> Box<T>
fn maybe_boxed(self) -> Box<T>
Convert
Source§impl<T> MaybeBoxed<T> for T
impl<T> MaybeBoxed<T> for T
Source§fn maybe_boxed(self) -> T
fn maybe_boxed(self) -> T
Convert