RootedTraceableBox

Struct RootedTraceableBox 

Source
pub struct RootedTraceableBox<T: Traceable + 'static> { /* private fields */ }
Expand description

Roots any JSTraceable thing

If you have GC things like *mut JSObject or JSVal, use rooted!. If you know what you’re doing, use this.

Implementations§

Source§

impl<T: Traceable + 'static> RootedTraceableBox<T>

Source

pub fn new(traceable: T) -> RootedTraceableBox<T>

Root a JSTraceable thing for the life of this RootedTraceableBox

Source

pub fn from_box(boxed_traceable: Box<T>) -> RootedTraceableBox<T>

Consumes a boxed JSTraceable and roots it for the life of this RootedTraceableBox.

Source

pub unsafe fn ptr(&self) -> *mut T

Returns underlying pointer

Source§

impl<T> RootedTraceableBox<Heap<T>>
where Heap<T>: Traceable + 'static, T: GCMethods + Copy,

Source

pub fn handle(&self) -> Handle<'_, T>

Trait Implementations§

Source§

impl<T: Traceable> Deref for RootedTraceableBox<T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &T

Dereferences the value.
Source§

impl<T: Traceable> DerefMut for RootedTraceableBox<T>

Source§

fn deref_mut(&mut self) -> &mut T

Mutably dereferences the value.
Source§

impl<T: Traceable + 'static> Drop for RootedTraceableBox<T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<T: Traceable + 'static> Traceable for RootedTraceableBox<T>

Source§

unsafe fn trace(&self, trc: *mut JSTracer)

Trace self.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> Filterable for T

Source§

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> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<P, T> Receiver for P
where P: Deref<Target = T> + ?Sized, T: ?Sized,

Source§

type Target = T

🔬This is a nightly-only experimental API. (arbitrary_self_types)
The target type on which the method may be called.
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> ErasedDestructor for T
where T: 'static,

Source§

impl<T> MaybeSendSync for T

Layout§

Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.

Size: 8 bytes