Trait libbismuth::subclass::prelude::RefCounted

pub unsafe trait RefCounted: Sized + Clone + 'static {
    type InnerType;

    // Required methods
    unsafe fn ref_(this: *const Self::InnerType) -> *const Self::InnerType;
    fn as_ptr(&self) -> *const Self::InnerType;
    unsafe fn into_raw(self) -> *const Self::InnerType;
    unsafe fn from_raw(this: *const Self::InnerType) -> Self;
}

Required Associated Types§

type InnerType

The inner type

Required Methods§

unsafe fn ref_(this: *const Self::InnerType) -> *const Self::InnerType

The function used to increment the inner type refcount

fn as_ptr(&self) -> *const Self::InnerType

Provides access to a raw pointer to InnerType

unsafe fn into_raw(self) -> *const Self::InnerType

Converts the RefCounted object to a raw pointer to InnerType

unsafe fn from_raw(this: *const Self::InnerType) -> Self

Converts a raw pointer to InnerType to a RefCounted object

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

§

impl<T> RefCounted for Rc<T>
where T: 'static,

§

type InnerType = T

§

unsafe fn ref_( this: *const <Rc<T> as RefCounted>::InnerType, ) -> *const <Rc<T> as RefCounted>::InnerType

§

fn as_ptr(&self) -> *const <Rc<T> as RefCounted>::InnerType

§

unsafe fn into_raw(self) -> *const <Rc<T> as RefCounted>::InnerType

§

unsafe fn from_raw(this: *const <Rc<T> as RefCounted>::InnerType) -> Rc<T>

§

impl<T> RefCounted for Arc<T>
where T: 'static,

§

type InnerType = T

§

unsafe fn ref_( this: *const <Arc<T> as RefCounted>::InnerType, ) -> *const <Arc<T> as RefCounted>::InnerType

§

fn as_ptr(&self) -> *const <Arc<T> as RefCounted>::InnerType

§

unsafe fn into_raw(self) -> *const <Arc<T> as RefCounted>::InnerType

§

unsafe fn from_raw(this: *const <Arc<T> as RefCounted>::InnerType) -> Arc<T>

Implementors§