pub unsafe trait CType: Sized + Copy {
type OPAQUE_KIND: T;
fn short_name() -> String;
fn define_self__impl(
language: &dyn HeaderLanguage,
definer: &mut dyn Definer
) -> Result<()>;
fn zeroed() -> Self { ... }
fn define_self(
language: &dyn HeaderLanguage,
definer: &mut dyn Definer
) -> Result<()> { ... }
fn name(_language: &dyn HeaderLanguage) -> String { ... }
fn name_wrapping_var(language: &dyn HeaderLanguage, var_name: &str) -> String { ... }
fn csharp_marshaler() -> Option<String> { ... }
}
Expand description
Safety (non-exhaustive list at the moment):
::core::mem::zeroed::<Self>()
must be sound to use.
Required Associated Types
type OPAQUE_KIND: T
Required Methods
fn short_name() -> String
fn define_self__impl(
language: &dyn HeaderLanguage,
definer: &mut dyn Definer
) -> Result<()>
Provided Methods
fn zeroed() -> Self
fn define_self(
language: &dyn HeaderLanguage,
definer: &mut dyn Definer
) -> Result<()>
fn name(_language: &dyn HeaderLanguage) -> String
fn name_wrapping_var(language: &dyn HeaderLanguage, var_name: &str) -> String
sourcefn csharp_marshaler() -> Option<String>
fn csharp_marshaler() -> Option<String>
Optional marshaler attached to the type (e.g.,
[MarshalAs(UnmanagedType.FunctionPtr)]
)
Implementors
sourceimpl CType for PollFuture_Layout
Available on crate features futures
and dyn-traits
only.
impl CType for PollFuture_Layout
Available on crate features
futures
and dyn-traits
only.type OPAQUE_KIND = Concrete
sourceimpl<'__usability> CType for DropGlueVTable_Layout<'__usability>where
unsafe extern "C" fn(_: NonNullOwned<ErasedTy>): ConcreteReprC,
PhantomData<*mut (<u8 as IdentityIgnoring<'__usability>>::ItSelf,)>: ConcreteReprC,
Available on crate feature dyn-traits
only.
impl<'__usability> CType for DropGlueVTable_Layout<'__usability>where
unsafe extern "C" fn(_: NonNullOwned<ErasedTy>): ConcreteReprC,
PhantomData<*mut (<u8 as IdentityIgnoring<'__usability>>::ItSelf,)>: ConcreteReprC,
Available on crate feature
dyn-traits
only.type OPAQUE_KIND = Concrete
sourceimpl<'__usability> CType for StaticDropGlueVTable_Layout<'__usability>where
unsafe extern "C" fn(_: NonNullOwned<ErasedTy>): ConcreteReprC,
unsafe extern "C" fn(_: NonNullRef<ErasedTy>) -> NonNullOwned<ErasedTy>: ConcreteReprC,
PhantomData<*mut (<u8 as IdentityIgnoring<'__usability>>::ItSelf,)>: ConcreteReprC,
Available on crate feature dyn-traits
only.
impl<'__usability> CType for StaticDropGlueVTable_Layout<'__usability>where
unsafe extern "C" fn(_: NonNullOwned<ErasedTy>): ConcreteReprC,
unsafe extern "C" fn(_: NonNullRef<ErasedTy>) -> NonNullOwned<ErasedTy>: ConcreteReprC,
PhantomData<*mut (<u8 as IdentityIgnoring<'__usability>>::ItSelf,)>: ConcreteReprC,
Available on crate feature
dyn-traits
only.type OPAQUE_KIND = Concrete
sourceimpl<'__usability> CType for FfiFutureExecutorVTable_Layout<'__usability>where
unsafe extern "C" fn(_: NonNullOwned<ErasedTy>): ConcreteReprC,
unsafe extern "C" fn(_: NonNullRef<ErasedTy>) -> NonNullOwned<ErasedTy>: ConcreteReprC,
unsafe extern "C" fn(_: NonNullRef<ErasedTy>, _: CLayoutOf<VirtualPtr<dyn Send + FfiFuture + 'static>>) -> CLayoutOf<VirtualPtr<dyn Send + FfiFuture + 'static>>: ConcreteReprC,
unsafe extern "C" fn(_: NonNullRef<ErasedTy>, _: CLayoutOf<Box<dyn Send + FnMut() + 'static>>) -> CLayoutOf<VirtualPtr<dyn Send + FfiFuture + 'static>>: ConcreteReprC,
unsafe extern "C" fn(_: NonNullRef<ErasedTy>, _: CLayoutOf<VirtualPtr<dyn FfiFuture + 'static>>) -> CLayoutOf<()>: ConcreteReprC,
unsafe extern "C" fn(_: NonNullRef<ErasedTy>) -> CLayoutOf<VirtualPtr<dyn DropGlue + 'static>>: ConcreteReprC,
PhantomData<*mut (<u8 as IdentityIgnoring<'__usability>>::ItSelf,)>: ConcreteReprC,
Available on crate features futures
and dyn-traits
only.
impl<'__usability> CType for FfiFutureExecutorVTable_Layout<'__usability>where
unsafe extern "C" fn(_: NonNullOwned<ErasedTy>): ConcreteReprC,
unsafe extern "C" fn(_: NonNullRef<ErasedTy>) -> NonNullOwned<ErasedTy>: ConcreteReprC,
unsafe extern "C" fn(_: NonNullRef<ErasedTy>, _: CLayoutOf<VirtualPtr<dyn Send + FfiFuture + 'static>>) -> CLayoutOf<VirtualPtr<dyn Send + FfiFuture + 'static>>: ConcreteReprC,
unsafe extern "C" fn(_: NonNullRef<ErasedTy>, _: CLayoutOf<Box<dyn Send + FnMut() + 'static>>) -> CLayoutOf<VirtualPtr<dyn Send + FfiFuture + 'static>>: ConcreteReprC,
unsafe extern "C" fn(_: NonNullRef<ErasedTy>, _: CLayoutOf<VirtualPtr<dyn FfiFuture + 'static>>) -> CLayoutOf<()>: ConcreteReprC,
unsafe extern "C" fn(_: NonNullRef<ErasedTy>) -> CLayoutOf<VirtualPtr<dyn DropGlue + 'static>>: ConcreteReprC,
PhantomData<*mut (<u8 as IdentityIgnoring<'__usability>>::ItSelf,)>: ConcreteReprC,
Available on crate features
futures
and dyn-traits
only.type OPAQUE_KIND = Concrete
sourceimpl<'__usability> CType for FfiFutureVTable_Layout<'__usability>where
unsafe extern "C" fn(_: NonNullOwned<ErasedTy>): ConcreteReprC,
unsafe extern "C" fn(_: NonNullMut<ErasedTy>, _: CLayoutOf<&'static mut Context<'static>>) -> CLayoutOf<PollFuture>: ConcreteReprC,
PhantomData<*mut (<u8 as IdentityIgnoring<'__usability>>::ItSelf,)>: ConcreteReprC,
Available on crate features futures
and dyn-traits
only.
impl<'__usability> CType for FfiFutureVTable_Layout<'__usability>where
unsafe extern "C" fn(_: NonNullOwned<ErasedTy>): ConcreteReprC,
unsafe extern "C" fn(_: NonNullMut<ErasedTy>, _: CLayoutOf<&'static mut Context<'static>>) -> CLayoutOf<PollFuture>: ConcreteReprC,
PhantomData<*mut (<u8 as IdentityIgnoring<'__usability>>::ItSelf,)>: ConcreteReprC,
Available on crate features
futures
and dyn-traits
only.type OPAQUE_KIND = Concrete
sourceimpl<'lt, Ret> CType for RefDynFnMut0_Layout<'lt, Ret>where
Ret: ReprC,
Ret: ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret> CType for RefDynFnMut0_Layout<'lt, Ret>where
Ret: ReprC,
Ret: ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type OPAQUE_KIND = Concrete
sourceimpl<'lt, Ret, A1> CType for RefDynFnMut1_Layout<'lt, Ret, A1>where
Ret: ReprC,
A1: ReprC,
Ret: ReprC,
A1: ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A1> CType for RefDynFnMut1_Layout<'lt, Ret, A1>where
Ret: ReprC,
A1: ReprC,
Ret: ReprC,
A1: ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type OPAQUE_KIND = Concrete
sourceimpl<'lt, T> CType for slice_mut_Layout<'lt, T>where
T: 'lt,
T: ReprC,
NonNullMut<T>: ConcreteReprC,
usize: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, T> CType for slice_mut_Layout<'lt, T>where
T: 'lt,
T: ReprC,
NonNullMut<T>: ConcreteReprC,
usize: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type OPAQUE_KIND = Concrete
sourceimpl<'lt, T> CType for slice_ref_Layout<'lt, T>where
T: 'lt,
T: ReprC,
NonNullRef<T>: ConcreteReprC,
usize: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, T> CType for slice_ref_Layout<'lt, T>where
T: 'lt,
T: ReprC,
NonNullRef<T>: ConcreteReprC,
usize: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type OPAQUE_KIND = Concrete
sourceimpl<Ret> CType for ArcDynFn0_Layout<Ret>where
Ret: ReprC,
Ret: ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
Available on crate feature alloc
only.
impl<Ret> CType for ArcDynFn0_Layout<Ret>where
Ret: ReprC,
Ret: ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
Available on crate feature
alloc
only.type OPAQUE_KIND = Concrete
sourceimpl<Ret> CType for BoxDynFnMut0_Layout<Ret>where
Ret: ReprC,
Ret: ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Available on crate feature alloc
only.
impl<Ret> CType for BoxDynFnMut0_Layout<Ret>where
Ret: ReprC,
Ret: ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Available on crate feature
alloc
only.type OPAQUE_KIND = Concrete
sourceimpl<Ret, A1> CType for ArcDynFn1_Layout<Ret, A1>where
Ret: ReprC,
A1: ReprC,
Ret: ReprC,
A1: ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
Available on crate feature alloc
only.
impl<Ret, A1> CType for ArcDynFn1_Layout<Ret, A1>where
Ret: ReprC,
A1: ReprC,
Ret: ReprC,
A1: ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
Available on crate feature
alloc
only.type OPAQUE_KIND = Concrete
sourceimpl<Ret, A1> CType for BoxDynFnMut1_Layout<Ret, A1>where
Ret: ReprC,
A1: ReprC,
Ret: ReprC,
A1: ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Available on crate feature alloc
only.
impl<Ret, A1> CType for BoxDynFnMut1_Layout<Ret, A1>where
Ret: ReprC,
A1: ReprC,
Ret: ReprC,
A1: ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Available on crate feature
alloc
only.type OPAQUE_KIND = Concrete
sourceimpl<T0, T1> CType for Tuple2_Layout<T0, T1>where
T0: ReprC,
T1: ReprC,
T0: ConcreteReprC,
T1: ConcreteReprC,
impl<T0, T1> CType for Tuple2_Layout<T0, T1>where
T0: ReprC,
T1: ReprC,
T0: ConcreteReprC,
T1: ConcreteReprC,
type OPAQUE_KIND = Concrete
sourceimpl<T> CType for slice_boxed_Layout<T>where
T: ReprC,
NonNullOwned<T>: ConcreteReprC,
usize: ConcreteReprC,
impl<T> CType for slice_boxed_Layout<T>where
T: ReprC,
NonNullOwned<T>: ConcreteReprC,
usize: ConcreteReprC,
type OPAQUE_KIND = Concrete
sourceimpl<T> CType for slice_raw_Layout<T>where
T: ReprC,
NonNull<T>: ConcreteReprC,
usize: ConcreteReprC,
impl<T> CType for slice_raw_Layout<T>where
T: ReprC,
NonNull<T>: ConcreteReprC,
usize: ConcreteReprC,
type OPAQUE_KIND = Concrete
sourceimpl<T> CType for Vec_Layout<T>where
T: ReprC,
NonNullOwned<T>: ConcreteReprC,
usize: ConcreteReprC,
usize: ConcreteReprC,
Available on crate feature alloc
only.
impl<T> CType for Vec_Layout<T>where
T: ReprC,
NonNullOwned<T>: ConcreteReprC,
usize: ConcreteReprC,
usize: ConcreteReprC,
Available on crate feature
alloc
only.