pub unsafe trait CTypeInfo {
    // Required method
    fn type_info() -> CType;
}
Expand description

Implemented for a type via ffi_type, gives meta info for a type.

§Safety

This trait must be implemented correctly, or else the generated bindings disagree in their type layout from the actual Rust type, leading to immediate UB upon function invocation.

Required Methods§

Object Safety§

This trait is not object safe.

Implementations on Foreign Types§

source§

impl CTypeInfo for c_void

source§

impl CTypeInfo for Option<NonZeroI8>

source§

impl CTypeInfo for Option<NonZeroI16>

source§

impl CTypeInfo for Option<NonZeroI32>

source§

impl CTypeInfo for Option<NonZeroI64>

source§

impl CTypeInfo for Option<NonZeroU8>

source§

impl CTypeInfo for Option<NonZeroU16>

source§

impl CTypeInfo for Option<NonZeroU32>

source§

impl CTypeInfo for Option<NonZeroU64>

source§

impl CTypeInfo for bool

source§

impl CTypeInfo for f32

source§

impl CTypeInfo for f64

source§

impl CTypeInfo for i8

source§

impl CTypeInfo for i16

source§

impl CTypeInfo for i32

source§

impl CTypeInfo for i64

source§

impl CTypeInfo for u8

source§

impl CTypeInfo for u16

source§

impl CTypeInfo for u32

source§

impl CTypeInfo for u64

source§

impl CTypeInfo for ()

source§

impl CTypeInfo for NonZeroI8

source§

impl CTypeInfo for NonZeroI16

source§

impl CTypeInfo for NonZeroI32

source§

impl CTypeInfo for NonZeroI64

source§

impl CTypeInfo for NonZeroU8

source§

impl CTypeInfo for NonZeroU16

source§

impl CTypeInfo for NonZeroU32

source§

impl CTypeInfo for NonZeroU64

source§

impl<'a, T1, R> CTypeInfo for Option<extern "C" fn(_: T1) -> R>
where T1: CTypeInfo + 'a, R: CTypeInfo + 'a,

source§

impl<'a, T1, T2, R> CTypeInfo for Option<extern "C" fn(_: T1, _: T2) -> R>
where T1: CTypeInfo + 'a, T2: CTypeInfo + 'a, R: CTypeInfo + 'a,

source§

impl<'a, T1, T2, R> CTypeInfo for extern "C" fn(_: T1, _: T2) -> R
where T1: CTypeInfo + 'a, T2: CTypeInfo + 'a, R: CTypeInfo + 'a,

source§

impl<'a, T1, T2, T3, R> CTypeInfo for Option<extern "C" fn(_: T1, _: T2, _: T3) -> R>
where T1: CTypeInfo + 'a, T2: CTypeInfo + 'a, T3: CTypeInfo + 'a, R: CTypeInfo + 'a,

source§

impl<'a, T1, T2, T3, R> CTypeInfo for extern "C" fn(_: T1, _: T2, _: T3) -> R
where T1: CTypeInfo + 'a, T2: CTypeInfo + 'a, T3: CTypeInfo + 'a, R: CTypeInfo + 'a,

source§

impl<'a, T1, T2, T3, T4, R> CTypeInfo for Option<extern "C" fn(_: T1, _: T2, _: T3, _: T4) -> R>
where T1: CTypeInfo + 'a, T2: CTypeInfo + 'a, T3: CTypeInfo + 'a, T4: CTypeInfo + 'a, R: CTypeInfo + 'a,

source§

impl<'a, T1, T2, T3, T4, R> CTypeInfo for extern "C" fn(_: T1, _: T2, _: T3, _: T4) -> R
where T1: CTypeInfo + 'a, T2: CTypeInfo + 'a, T3: CTypeInfo + 'a, T4: CTypeInfo + 'a, R: CTypeInfo + 'a,

source§

impl<'a, T1, T2, T3, T4, T5, R> CTypeInfo for Option<extern "C" fn(_: T1, _: T2, _: T3, _: T4, _: T5) -> R>
where T1: CTypeInfo + 'a, T2: CTypeInfo + 'a, T3: CTypeInfo + 'a, T4: CTypeInfo + 'a, T5: CTypeInfo + 'a, R: CTypeInfo + 'a,

source§

impl<'a, T1, T2, T3, T4, T5, R> CTypeInfo for extern "C" fn(_: T1, _: T2, _: T3, _: T4, _: T5) -> R
where T1: CTypeInfo + 'a, T2: CTypeInfo + 'a, T3: CTypeInfo + 'a, T4: CTypeInfo + 'a, T5: CTypeInfo + 'a, R: CTypeInfo + 'a,

source§

impl<'a, T> CTypeInfo for Option<&'a T>
where T: CTypeInfo + Sized + 'static,

source§

impl<'a, T> CTypeInfo for Option<&'a mut T>
where T: CTypeInfo + Sized + 'static,

source§

impl<'a, T> CTypeInfo for &'a T
where T: CTypeInfo + Sized + 'static,

source§

impl<'a, T> CTypeInfo for &'a mut T
where T: CTypeInfo + Sized + 'static,

source§

impl<R> CTypeInfo for Option<extern "C" fn() -> R>
where R: CTypeInfo,

source§

impl<R> CTypeInfo for extern "C" fn() -> R
where R: CTypeInfo,

source§

impl<T1, R> CTypeInfo for extern "C" fn(_: T1) -> R
where T1: CTypeInfo, R: CTypeInfo,

source§

impl<T> CTypeInfo for *const T
where T: CTypeInfo + Sized + 'static,

source§

impl<T> CTypeInfo for *mut T
where T: CTypeInfo + Sized + 'static,

source§

impl<T> CTypeInfo for NonNull<T>
where T: CTypeInfo,

source§

impl<T, const N: usize> CTypeInfo for [T; N]
where T: CTypeInfo,

Implementors§

source§

impl CTypeInfo for APIVersion

source§

impl CTypeInfo for FFIBool

source§

impl CTypeInfo for FFICChar

source§

impl<'a> CTypeInfo for AsciiPointer<'a>

source§

impl<'a, T> CTypeInfo for FFISlice<'a, T>
where T: CTypeInfo,

source§

impl<'a, T> CTypeInfo for FFISliceMut<'a, T>
where T: CTypeInfo,

source§

impl<T> CTypeInfo for FFIOption<T>
where T: CTypeInfo,