[−][src]Struct cgc::api::Handle
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]
fn clone(&self) -> Self
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[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]
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]
fn hash<H: Hasher>(&self, state: &mut H)
[src]
fn hash_slice<H>(data: &[Self], state: &mut H) where
H: Hasher,
1.3.0[src]
H: Hasher,
impl<T: Trace + Sized + 'static> HeapTrait for Handle<T>
[src]
fn copy_to(&self, addr: Address)
[src]
fn mark(&self)
[src]
fn unmark(&self)
[src]
fn get_fwd(&self) -> Address
[src]
fn set_fwd(&self, fwd: Address)
[src]
fn addr(&self) -> Address
[src]
fn is_marked(&self) -> bool
[src]
fn inner(&self) -> *mut HeapInner<dyn Trace>
[src]
impl<T: Trace + Ord> Ord for Handle<T>
[src]
fn cmp(&self, other: &Self) -> Ordering
[src]
#[must_use]fn max(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn min(self, other: Self) -> Self
1.21.0[src]
#[must_use]fn clamp(self, min: Self, max: Self) -> Self
[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,
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,
T: RefUnwindSafe,
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T> ToString for T where
T: Display + ?Sized,
[src]
T: Display + ?Sized,
impl<T> Trace for T where
T: Traceable,
[src]
T: Traceable,
fn mark(&Self)
[src]
fn unmark(&Self)
[src]
fn references(&Self) -> SmallVec<[*const dyn HeapTrait + 'static; 64]>
[src]
impl<T> Traceable for T where
T: 'static + HeapTrait + Finalizer,
[src]
T: 'static + HeapTrait + Finalizer,
fn trace_with(&Self, &mut Tracer)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,