RootedGuard

Struct RootedGuard 

Source
pub struct RootedGuard<'a, T: 'a + RootKind> { /* private fields */ }
Expand description

Rust API for keeping a Rooted value in the context’s root stack. Example usage: rooted!(in(cx) let x = UndefinedValue());. RootedGuard::new also works, but the macro is preferred.

Implementations§

Source§

impl<'a, T: 'a + RootKind> RootedGuard<'a, T>

Source

pub fn new( cx: *mut JSContext, root: &'a mut MaybeUninit<Rooted<T>>, initial: T, ) -> Self

Source

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

Source

pub fn handle_mut(&mut self) -> MutableHandle<'_, T>

Source

pub fn as_ptr(&self) -> *mut T

Source

pub unsafe fn as_mut<'b>(&'b mut self) -> &'b mut T
where 'a: 'b,

Safety: GC must not run during the lifetime of the returned reference.

Source

pub fn get(&self) -> T
where T: Copy,

Source

pub fn set(&mut self, v: T)

Source§

impl<'a, T> RootedGuard<'a, Option<T>>
where Option<T>: RootKind,

Source

pub fn take(&mut self) -> Option<T>

Trait Implementations§

Source§

impl<'a, T: 'a + RootKind> Deref for RootedGuard<'a, T>

Source§

type Target = T

The resulting type after dereferencing.
Source§

fn deref(&self) -> &T

Dereferences the value.
Source§

impl<'a, T: 'a + RootKind> Drop for RootedGuard<'a, T>

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl<'a, const N: usize> From<&RootedGuard<'a, ValueArray<N>>> for HandleValueArray

Source§

fn from(array: &RootedGuard<'a, ValueArray<N>>) -> HandleValueArray

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'a, T> Freeze for RootedGuard<'a, T>

§

impl<'a, T> RefUnwindSafe for RootedGuard<'a, T>

§

impl<'a, T> !Send for RootedGuard<'a, T>

§

impl<'a, T> !Sync for RootedGuard<'a, T>

§

impl<'a, T> Unpin for RootedGuard<'a, T>

§

impl<'a, T> !UnwindSafe for RootedGuard<'a, T>

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