[][src]Struct gluon_vm::gc::GcPtr

pub struct GcPtr<T: ?Sized> { /* fields omitted */ }

A pointer to a garbage collected value.

It is only safe to access data through a GcPtr if the value is rooted (stored in a place where the garbage collector will find it during the mark phase).

Methods

impl<T: ?Sized> GcPtr<T>[src]

pub unsafe fn as_mut(&mut self) -> &mut T[src]

Unsafe as it is up to the caller to ensure that this pointer is not referenced somewhere else

pub unsafe fn from_raw(ptr: *const T) -> GcPtr<T>[src]

Unsafe as ptr must have been allocted by this garbage collector

pub fn generation(&self) -> Generation[src]

pub fn poly_tag(&self) -> Option<InternedStr>[src]

pub fn field_map(&self) -> &FnvMap<InternedStr, VmIndex>[src]

pub fn field_names(&self) -> &Arc<Vec<InternedStr>>[src]

pub fn ptr_eq(self, other: GcPtr<T>) -> bool[src]

impl<'a, T: Traverseable + Send + Sync + 'a> GcPtr<T>[src]

pub fn as_traverseable(self) -> GcPtr<dyn Traverseable + Send + Sync + 'a>[src]

Coerces self to a Traverseable trait object

impl GcPtr<str>[src]

pub fn as_traverseable_string(self) -> GcPtr<dyn Traverseable + Send + Sync>[src]

Coerces self to a Traverseable trait object

Trait Implementations

impl<T: ?Sized> Traverseable for GcPtr<T> where
    T: Traverseable
[src]

When traversing a GcPtr we need to mark it

impl<T: ?Sized> Clone for GcPtr<T>[src]

fn clone_from(&mut self, source: &Self)
1.0.0
[src]

Performs copy-assignment from source. Read more

impl<T: ?Sized + PartialEq> PartialEq<GcPtr<T>> for GcPtr<T>[src]

#[must_use]
fn ne(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests for !=.

impl<T: ?Sized + PartialOrd> PartialOrd<GcPtr<T>> for GcPtr<T>[src]

#[must_use]
fn lt(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests less than (for self and other) and is used by the < operator. Read more

#[must_use]
fn le(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests less than or equal to (for self and other) and is used by the <= operator. Read more

#[must_use]
fn gt(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests greater than (for self and other) and is used by the > operator. Read more

#[must_use]
fn ge(&self, other: &Rhs) -> bool
1.0.0
[src]

This method tests greater than or equal to (for self and other) and is used by the >= operator. Read more

impl<T: ?Sized + Ord> Ord for GcPtr<T>[src]

fn max(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the maximum of two values. Read more

fn min(self, other: Self) -> Self
1.21.0
[src]

Compares and returns the minimum of two values. Read more

fn clamp(self, min: Self, max: Self) -> Self[src]

🔬 This is a nightly-only experimental API. (clamp)

Returns max if self is greater than max, and min if self is less than min. Otherwise this will return self. Panics if min > max. Read more

impl<T: ?Sized + Eq> Eq for GcPtr<T>[src]

impl<T: ?Sized> Copy for GcPtr<T>[src]

impl<T: ?Sized + Send + Sync> Send for GcPtr<T>[src]

impl<T: ?Sized + Send + Sync> Sync for GcPtr<T>[src]

impl<T: ?Sized> Deref for GcPtr<T>[src]

type Target = T

The resulting type after dereferencing.

impl<T: ?Sized + Hash> Hash for GcPtr<T>[src]

fn hash_slice<H>(data: &[Self], state: &mut H) where
    H: Hasher
1.3.0
[src]

Feeds a slice of this type into the given [Hasher]. Read more

impl<T: ?Sized + Debug> Debug for GcPtr<T>[src]

impl<T: ?Sized + Display> Display for GcPtr<T>[src]

impl<T: ?Sized> Borrow<T> for GcPtr<T>[src]

Blanket Implementations

impl<D, T> FromPtr for T[src]

impl<T> ToString for T where
    T: Display + ?Sized
[src]

impl<T, U> Into for T where
    U: From<T>, 
[src]

impl<T> From for T[src]

impl<T> ToOwned for T where
    T: Clone
[src]

type Owned = T

impl<T, U> TryFrom for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T> Borrow for T where
    T: ?Sized
[src]

impl<T, U> TryInto for T where
    U: TryFrom<T>, 
[src]

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

The type returned in the event of a conversion error.

impl<T> BorrowMut for T where
    T: ?Sized
[src]

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<Choices> CoproductSubsetter for Choices[src]

type Remainder = Choices

impl<Source> Sculptor for Source[src]

type Remainder = Source

impl<T, U, I> LiftInto for T where
    U: LiftFrom<T, I>, 
[src]

impl<T> Any for T where
    T: Any
[src]