Struct cglue::trait_group::CGlueObjContainer
source · #[repr(C)]pub struct CGlueObjContainer<T, C, R> { /* private fields */ }
Expand description
Simple CGlue trait object container.
This is the simplest form of container, represented by an instance, clone context, and temporary return context.
instance
value usually is either a reference, or a mutable reference, or a CBox
, which
contains static reference to the instance, and a dedicated drop function for freeing resources.
context
is either PhantomData
representing nothing, or typically a CArc
that can be
cloned at will, reference counting some resource, like a Library
for automatic unloading.
ret_tmp
is usually PhantomData
representing nothing, unless the trait has functions that
return references to associated types, in which case space is reserved for wrapping structures.
Trait Implementations§
source§impl<T: Deref<Target = F>, F, C: ContextBounds, R> CGlueObjBase for CGlueObjContainer<T, C, R>
impl<T: Deref<Target = F>, F, C: ContextBounds, R> CGlueObjBase for CGlueObjContainer<T, C, R>
source§impl<T: Deref<Target = F> + DerefMut, F, C: ContextBounds, R> CGlueObjMut<R> for CGlueObjContainer<T, C, R>
impl<T: Deref<Target = F> + DerefMut, F, C: ContextBounds, R> CGlueObjMut<R> for CGlueObjContainer<T, C, R>
source§impl<T: Deref<Target = F>, F, C: ContextBounds, R> CGlueObjRef<R> for CGlueObjContainer<T, C, R>
impl<T: Deref<Target = F>, F, C: ContextBounds, R> CGlueObjRef<R> for CGlueObjContainer<T, C, R>
source§impl<'a, T, C: ContextBounds, R: Default> From<(T, C)> for CGlueObjContainer<CBox<'a, T>, C, R>
impl<'a, T, C: ContextBounds, R: Default> From<(T, C)> for CGlueObjContainer<CBox<'a, T>, C, R>
source§impl<T: Deref<Target = F>, F, C: ContextBounds, R: Default> From<(T, C)> for CGlueObjContainer<T, C, R>
impl<T: Deref<Target = F>, F, C: ContextBounds, R: Default> From<(T, C)> for CGlueObjContainer<T, C, R>
source§impl<'a, T: Deref<Target = F>, F, V: CGlueVtbl<CGlueObjContainer<T, C, R>, Context = C, RetTmp = R>, C: ContextBounds, R: Default> From<CGlueObjContainer<T, C, R>> for CGlueTraitObj<'a, T, V, V::Context, V::RetTmp>where
&'a V: Default,
impl<'a, T: Deref<Target = F>, F, V: CGlueVtbl<CGlueObjContainer<T, C, R>, Context = C, RetTmp = R>, C: ContextBounds, R: Default> From<CGlueObjContainer<T, C, R>> for CGlueTraitObj<'a, T, V, V::Context, V::RetTmp>where &'a V: Default,
source§fn from(container: CGlueObjContainer<T, C, R>) -> Self
fn from(container: CGlueObjContainer<T, C, R>) -> Self
Converts to this type from the input type.
source§impl<T: Opaquable, C, R> Opaquable for CGlueObjContainer<T, C, R>
impl<T: Opaquable, C, R> Opaquable for CGlueObjContainer<T, C, R>
type OpaqueTarget = CGlueObjContainer<<T as Opaquable>::OpaqueTarget, C, R>
source§fn into_opaque(self) -> Self::OpaqueTarget
fn into_opaque(self) -> Self::OpaqueTarget
Transform self into an opaque version of the trait object. Read more
Auto Trait Implementations§
impl<T, C, R> RefUnwindSafe for CGlueObjContainer<T, C, R>where C: RefUnwindSafe, R: RefUnwindSafe, T: RefUnwindSafe,
impl<T, C, R> Send for CGlueObjContainer<T, C, R>where C: Send, R: Send, T: Send,
impl<T, C, R> Sync for CGlueObjContainer<T, C, R>where C: Sync, R: Sync, T: Sync,
impl<T, C, R> Unpin for CGlueObjContainer<T, C, R>where C: Unpin, R: Unpin, T: Unpin,
impl<T, C, R> UnwindSafe for CGlueObjContainer<T, C, R>where C: UnwindSafe, R: UnwindSafe, T: UnwindSafe,
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more