Trait zerogc_context::collector::CollectorPtr[][src]

pub unsafe trait CollectorPtr<C: RawCollectorImpl<Ptr = Self>>: Copy + Eq + Sealed + 'static {
    type Weak: Clone + 'static;
    unsafe fn from_raw(ptr: *mut C) -> Self;
unsafe fn clone_owned(&self) -> Self;
fn as_ptr(&self) -> *mut C;
unsafe fn drop(self);
fn upgrade_weak_raw(weak: &Self::Weak) -> Option<Self>;
unsafe fn assume_weak_valid(weak: &Self::Weak) -> Self;
unsafe fn create_weak(&self) -> Self::Weak; fn upgrade_weak(weak: &Self::Weak) -> Option<CollectorRef<C>> { ... } }
Expand description

An unchecked pointer to a collector

Associated Types

type Weak: Clone + 'static[src]

Expand description

A weak reference to the pointer

Required methods

unsafe fn from_raw(ptr: *mut C) -> Self[src]

unsafe fn clone_owned(&self) -> Self[src]

fn as_ptr(&self) -> *mut C[src]

unsafe fn drop(self)[src]

fn upgrade_weak_raw(weak: &Self::Weak) -> Option<Self>[src]

unsafe fn assume_weak_valid(weak: &Self::Weak) -> Self[src]

unsafe fn create_weak(&self) -> Self::Weak[src]

Provided methods

fn upgrade_weak(weak: &Self::Weak) -> Option<CollectorRef<C>>[src]

Implementations on Foreign Types

impl<C: RawCollectorImpl<Ptr = Self>> CollectorPtr<C> for NonNull<C>[src]

This is implemented as a raw pointer via Arc::into_raw

type Weak = Weak<C>

unsafe fn from_raw(ptr: *mut C) -> Self[src]

unsafe fn clone_owned(&self) -> Self[src]

fn as_ptr(&self) -> *mut C[src]

unsafe fn drop(self)[src]

fn upgrade_weak_raw(weak: &Self::Weak) -> Option<Self>[src]

unsafe fn assume_weak_valid(weak: &Self::Weak) -> Self[src]

unsafe fn create_weak(&self) -> Self::Weak[src]

impl<C: SingletonCollector<Ptr = Self>> CollectorPtr<C> for PhantomData<&'static C>[src]

type Weak = PhantomData<&'static C>

unsafe fn from_raw(ptr: *mut C) -> Self[src]

unsafe fn clone_owned(&self) -> Self[src]

fn as_ptr(&self) -> *mut C[src]

unsafe fn drop(self)[src]

fn upgrade_weak_raw(weak: &Self::Weak) -> Option<Self>[src]

unsafe fn assume_weak_valid(weak: &Self::Weak) -> Self[src]

unsafe fn create_weak(&self) -> Self::Weak[src]

Implementors