Skip to main content

OpaqueRefCountedFacade

Struct OpaqueRefCountedFacade 

Source
pub struct OpaqueRefCountedFacade<B = RefCounted> { /* private fields */ }
Expand description

A zero-sized facade type for opaque ref-counted C++ objects that derive from a base class B.

This is used as a field in Rust facade structs that represent C++ objects of unknown size. It keeps the facade struct Sized (size 0) so it can be used in FFI (thin pointers) and with generic containers like RefPtr, while providing Send, Sync, and PhantomPinned.

Trait Implementations§

Source§

impl<B: Default> Default for OpaqueRefCountedFacade<B>

Source§

fn default() -> OpaqueRefCountedFacade<B>

Returns the “default value” for a type. Read more
Source§

impl<B: HasRefCount> HasRefCount for OpaqueRefCountedFacade<B>

Source§

fn ref_count(&self) -> &RefCounted

Returns a reference to the contained RefCounted field.
Source§

impl<B: Recyclable> Recyclable for OpaqueRefCountedFacade<B>

Source§

unsafe fn recycle(ptr: NonNull<Self>)

Recycles the object. Read more
Source§

fn allocate(_value: Self) -> Result<NonNull<Self>, AllocError>

Allocates a new instance of Self.
Source§

unsafe fn recycle_ffi(ptr: *mut c_void)

Helper for FFI functions to call recycle. Read more
Source§

impl<B> Send for OpaqueRefCountedFacade<B>

Source§

impl<B> Sync for OpaqueRefCountedFacade<B>

Auto Trait Implementations§

§

impl<B = RefCounted> !Freeze for OpaqueRefCountedFacade<B>

§

impl<B = RefCounted> !RefUnwindSafe for OpaqueRefCountedFacade<B>

§

impl<B = RefCounted> !Unpin for OpaqueRefCountedFacade<B>

§

impl<B> UnsafeUnpin for OpaqueRefCountedFacade<B>

§

impl<B> UnwindSafe for OpaqueRefCountedFacade<B>

Blanket Implementations§

§

impl<T> Any for T
where T: 'static + ?Sized,

§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
§

impl<T> Borrow<T> for T
where T: ?Sized,

§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
§

impl<T> BorrowMut<T> for T
where T: ?Sized,

§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
§

impl<T> From<T> for T

§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Init<T> for T

Source§

unsafe fn __init(self, slot: *mut T) -> Result<(), Infallible>

Initializes slot. Read more
Source§

fn chain<F>(self, f: F) -> ChainInit<Self, F, T, E>
where F: FnOnce(&mut T) -> Result<(), E>,

First initializes the value using self then calls the function f with the initialized value. Read more
§

impl<T, U> Into<U> for T
where U: From<T>,

§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

Source§

impl<T> PinInit<T> for T

Source§

unsafe fn __pinned_init(self, slot: *mut T) -> Result<(), Infallible>

Initializes slot. Read more
Source§

fn pin_chain<F>(self, f: F) -> ChainPinInit<Self, F, T, E>
where F: FnOnce(Pin<&mut T>) -> Result<(), E>,

First initializes the value using self then calls the function f with the initialized value. Read more
Source§

impl<T> ToMutPtr for T
where T: ?Sized,

Source§

type Target = T

The target type of the pointer.
Source§

fn to_mut_ptr(&self) -> *mut T

Casts the reference to a mutable raw pointer.
§

impl<T, U> TryFrom<U> for T
where 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>

Performs the conversion.
§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

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

The type returned in the event of a conversion error.
§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.