[][src]Struct cgc_single_threaded::api::Handle

pub struct Handle<T: Trace + ?Sized> { /* fields omitted */ }

Wraps GC heap pointer.

GC thing pointers on the heap must be wrapped in a Handle<T>

Methods

impl<T: Trace + ?Sized> Handle<T>[src]

pub fn get(&self) -> &T[src]

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

Returns mutable reference to rooted value

Safety

Rust semantics doesn't allow two mutable references at the same time and this function is safe as long as you have only one mutable reference.

If you want to be 100% sure that you don't have two or more mutable references at the same time please use Heap<RefCell<T>>

Trait Implementations

impl<T: Trace> Clone for Handle<T>[src]

impl<T: Trace> Copy for Handle<T>[src]

impl<T: Trace + Debug> Debug for Handle<T>[src]

impl<T: Traceable> Deref for Handle<T>[src]

type Target = T

The resulting type after dereferencing.

impl<T: Traceable> DerefMut for Handle<T>[src]

impl<T: Trace + Display> Display for Handle<T>[src]

impl<T: Trace + Eq> Eq for Handle<T>[src]

impl<T: Trace> Finalizer for Handle<T>[src]

impl<'_, T: Trace + ?Sized> From<&'_ Rooted<T>> for Handle<T>[src]

impl<T: Trace + ?Sized> From<Rooted<T>> for Handle<T>[src]

impl<T: Trace + Hash> Hash for Handle<T>[src]

impl<T: Trace + Sized + 'static> HeapTrait for Handle<T>[src]

impl<T: Trace + Ord> Ord for Handle<T>[src]

impl<T: Trace + PartialEq> PartialEq<Handle<T>> for Handle<T>[src]

impl<T: Trace + PartialOrd> PartialOrd<Handle<T>> for Handle<T>[src]

Auto Trait Implementations

impl<T: ?Sized> RefUnwindSafe for Handle<T> where
    T: RefUnwindSafe

impl<T> !Send for Handle<T>

impl<T> !Sync for Handle<T>

impl<T: ?Sized> Unpin for Handle<T>

impl<T: ?Sized> UnwindSafe for Handle<T> where
    T: RefUnwindSafe

Blanket Implementations

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

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

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

impl<T> From<T> for T[src]

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

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

type Owned = T

The resulting type after obtaining ownership.

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

impl<T> Trace for T where
    T: Traceable
[src]

impl<T> Traceable for T where
    T: 'static + HeapTrait + Finalizer
[src]

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

type Error = Infallible

The type returned in the event of a conversion error.

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

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

The type returned in the event of a conversion error.