[][src]Trait safer_ffi::layout::CType

pub unsafe trait CType: Sized + Copy {
    type OPAQUE_KIND: __;
}

One of the two core traits of this crate (with ReprC).

CType is an unsafe trait that binds a Rust type to a C typedef.

To optimise compile-times, the C typedef part is gated behind the headers cargo feature, so when that feature is not enabled, the trait may "look" like a marker trait, but it isn't.

That's why manually implementing this trait is strongly discouraged, although not forbidden:

  • If you trully want a manual implementation of CType (e.g., for an "opaque type" pattern, i.e., a forward declaration), then, to implement the trait so that it works no matter the status of the safer_ffi/headers feature, one must define the methods as if feature was present, but with a #[::safer_ffi::cfg_headers] gate slapped on each method.

Safety

The Rust type in an extern "C" function must have the same layout and ABI as the defined C type, and all the bit-patterns representing any instance of such C type must be valid and safe bit-patterns for the Rust type.

For the most common types, there are only two reasons to correctly be a CType:

  • being a primitive type, such as an integer type or a (slim) pointer.

    • This crates provides as many of these implementations as possible.
  • an recursively, a non-zero-sized #[repr(C)] struct of CType fields.

    • the CType! macro can be used to wrap a #[repr(C)] struct definition to safely and automagically implement the trait when it is sound to do so.

Note that types such as Rust's bool are ruled out by this definition, since it has the ABI of a u8 <-> uint8_t, and yet there are many bit-patterns for the uint8_t type that do not make valid bools.

For such types, see the ReprC trait.

Associated Types

Loading content...

Implementations on Foreign Types

impl<T: CType> CType for *const T[src]

impl<T: CType> CType for *mut T[src]

impl CType for f32[src]

impl CType for f64[src]

impl CType for u8[src]

impl CType for u16[src]

impl CType for u32[src]

impl CType for u64[src]

impl CType for usize[src]

impl CType for i8[src]

impl CType for i16[src]

impl CType for i32[src]

impl CType for i64[src]

impl CType for isize[src]

impl<Ret: CType> CType for Option<unsafe extern "C" fn() -> Ret>[src]

Simplified for lighter documentation, but the actual impls include up to 9 function parameters.

impl<Ret: CType, A1: CType> CType for Option<unsafe extern "C" fn(_: A1) -> Ret>[src]

Simplified for lighter documentation, but the actual impls include up to 9 function parameters.

impl<Ret: CType, A2: CType, A1: CType> CType for Option<unsafe extern "C" fn(_: A2, _: A1) -> Ret>[src]

Simplified for lighter documentation, but the actual impls include up to 9 function parameters.

impl<Ret: CType, A3: CType, A2: CType, A1: CType> CType for Option<unsafe extern "C" fn(_: A3, _: A2, _: A1) -> Ret>[src]

Simplified for lighter documentation, but the actual impls include up to 9 function parameters.

impl<Ret: CType, A4: CType, A3: CType, A2: CType, A1: CType> CType for Option<unsafe extern "C" fn(_: A4, _: A3, _: A2, _: A1) -> Ret>[src]

Simplified for lighter documentation, but the actual impls include up to 9 function parameters.

impl<Ret: CType, A5: CType, A4: CType, A3: CType, A2: CType, A1: CType> CType for Option<unsafe extern "C" fn(_: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>[src]

Simplified for lighter documentation, but the actual impls include up to 9 function parameters.

impl<Ret: CType, A6: CType, A5: CType, A4: CType, A3: CType, A2: CType, A1: CType> CType for Option<unsafe extern "C" fn(_: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>[src]

Simplified for lighter documentation, but the actual impls include up to 9 function parameters.

impl<Ret: CType, A7: CType, A6: CType, A5: CType, A4: CType, A3: CType, A2: CType, A1: CType> CType for Option<unsafe extern "C" fn(_: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>[src]

Simplified for lighter documentation, but the actual impls include up to 9 function parameters.

impl<Ret: CType, A8: CType, A7: CType, A6: CType, A5: CType, A4: CType, A3: CType, A2: CType, A1: CType> CType for Option<unsafe extern "C" fn(_: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>[src]

Simplified for lighter documentation, but the actual impls include up to 9 function parameters.

impl<Ret: CType, A9: CType, A8: CType, A7: CType, A6: CType, A5: CType, A4: CType, A3: CType, A2: CType, A1: CType> CType for Option<unsafe extern "C" fn(_: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>[src]

Simplified for lighter documentation, but the actual impls include up to 9 function parameters.

impl<Item: CType> CType for [Item; 1][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 2][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 3][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 4][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 5][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 6][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 7][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 8][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 9][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 10][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 11][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 12][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 13][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 14][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 15][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 16][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 17][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 18][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 19][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 20][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 21][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 22][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 23][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 24][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 25][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 26][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 27][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 28][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 29][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 30][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 31][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 32][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 40][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 48][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 50][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 60][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 64][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 70][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 75][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 80][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 90][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 96][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 100][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 125][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 128][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 192][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 200][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 250][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 256][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 300][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 400][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 500][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 512][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 600][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 700][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 750][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 800][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 900][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 1000][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

impl<Item: CType> CType for [Item; 1024][src]

Simplified for lighter documentation, but the actual impls range from 1 up to 32, plus a bunch of significant lengths up to 1024.

Loading content...

Implementors

impl<'lt, Ret> CType for RefDynFnMut0<'lt, Ret> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) -> Ret as ReprC>::CLayout: CType,
    <PhantomData<&'lt ()> as ReprC>::CLayout: CType,
    Ret: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>) -> Ret: ReprC,
    PhantomData<&'lt ()>: ReprC,
    Ret: ReprC,
    Ret: ReprC
[src]

impl<'lt, Ret, A1> CType for RefDynFnMut1<'lt, Ret, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A1) -> Ret as ReprC>::CLayout: CType,
    <PhantomData<&'lt ()> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A1) -> Ret: ReprC,
    PhantomData<&'lt ()>: ReprC,
    Ret: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A1: ReprC
[src]

impl<'lt, Ret, A2, A1> CType for RefDynFnMut2<'lt, Ret, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <PhantomData<&'lt ()> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A2, _: A1) -> Ret: ReprC,
    PhantomData<&'lt ()>: ReprC,
    Ret: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<'lt, Ret, A3, A2, A1> CType for RefDynFnMut3<'lt, Ret, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <PhantomData<&'lt ()> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A3, _: A2, _: A1) -> Ret: ReprC,
    PhantomData<&'lt ()>: ReprC,
    Ret: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<'lt, Ret, A4, A3, A2, A1> CType for RefDynFnMut4<'lt, Ret, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <PhantomData<&'lt ()> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    PhantomData<&'lt ()>: ReprC,
    Ret: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<'lt, Ret, A5, A4, A3, A2, A1> CType for RefDynFnMut5<'lt, Ret, A5, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <PhantomData<&'lt ()> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    PhantomData<&'lt ()>: ReprC,
    Ret: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<'lt, Ret, A6, A5, A4, A3, A2, A1> CType for RefDynFnMut6<'lt, Ret, A6, A5, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <PhantomData<&'lt ()> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    PhantomData<&'lt ()>: ReprC,
    Ret: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<'lt, Ret, A7, A6, A5, A4, A3, A2, A1> CType for RefDynFnMut7<'lt, Ret, A7, A6, A5, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <PhantomData<&'lt ()> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    PhantomData<&'lt ()>: ReprC,
    Ret: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<'lt, Ret, A8, A7, A6, A5, A4, A3, A2, A1> CType for RefDynFnMut8<'lt, Ret, A8, A7, A6, A5, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <PhantomData<&'lt ()> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    PhantomData<&'lt ()>: ReprC,
    Ret: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<'lt, Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1> CType for RefDynFnMut9<'lt, Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <PhantomData<&'lt ()> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A9: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    PhantomData<&'lt ()>: ReprC,
    Ret: ReprC,
    A9: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A9: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<'lt, T> CType for slice_mut<'lt, T> where
    <NonNullMut<T> as ReprC>::CLayout: CType,
    <usize as ReprC>::CLayout: CType,
    <PhantomData<&'lt ()> as ReprC>::CLayout: CType,
    T: ReprC,
    NonNullMut<T>: ReprC,
    usize: ReprC,
    PhantomData<&'lt ()>: ReprC,
    T: ReprC,
    T: 'lt, 
[src]

impl<'lt, T> CType for slice_ref<'lt, T> where
    <NonNullRef<T> as ReprC>::CLayout: CType,
    <usize as ReprC>::CLayout: CType,
    <PhantomData<&'lt ()> as ReprC>::CLayout: CType,
    T: ReprC,
    NonNullRef<T>: ReprC,
    usize: ReprC,
    PhantomData<&'lt ()>: ReprC,
    T: ReprC,
    T: 'lt, 
[src]

impl<Ret> CType for ArcDynFn0<Ret> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    <Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)> as ReprC>::CLayout: CType,
    Ret: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ReprC,
    Ret: ReprC,
    Ret: ReprC
[src]

impl<Ret> CType for BoxDynFnMut0<Ret> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    Ret: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Ret: ReprC,
    Ret: ReprC
[src]

impl<Ret, A1> CType for ArcDynFn1<Ret, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    <Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ReprC,
    Ret: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A1: ReprC
[src]

impl<Ret, A1> CType for BoxDynFnMut1<Ret, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    Ret: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Ret: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A1: ReprC
[src]

impl<Ret, A2, A1> CType for ArcDynFn2<Ret, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    <Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A2, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ReprC,
    Ret: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<Ret, A2, A1> CType for BoxDynFnMut2<Ret, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    Ret: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A2, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Ret: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<Ret, A3, A2, A1> CType for ArcDynFn3<Ret, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    <Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A3, _: A2, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ReprC,
    Ret: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<Ret, A3, A2, A1> CType for BoxDynFnMut3<Ret, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    Ret: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A3, _: A2, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Ret: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<Ret, A4, A3, A2, A1> CType for ArcDynFn4<Ret, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    <Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ReprC,
    Ret: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<Ret, A4, A3, A2, A1> CType for BoxDynFnMut4<Ret, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    Ret: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Ret: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<Ret, A5, A4, A3, A2, A1> CType for ArcDynFn5<Ret, A5, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    <Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ReprC,
    Ret: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<Ret, A5, A4, A3, A2, A1> CType for BoxDynFnMut5<Ret, A5, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    Ret: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Ret: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<Ret, A6, A5, A4, A3, A2, A1> CType for ArcDynFn6<Ret, A6, A5, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    <Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ReprC,
    Ret: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<Ret, A6, A5, A4, A3, A2, A1> CType for BoxDynFnMut6<Ret, A6, A5, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    Ret: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Ret: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<Ret, A7, A6, A5, A4, A3, A2, A1> CType for ArcDynFn7<Ret, A7, A6, A5, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    <Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ReprC,
    Ret: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<Ret, A7, A6, A5, A4, A3, A2, A1> CType for BoxDynFnMut7<Ret, A7, A6, A5, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    Ret: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Ret: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<Ret, A8, A7, A6, A5, A4, A3, A2, A1> CType for ArcDynFn8<Ret, A8, A7, A6, A5, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    <Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ReprC,
    Ret: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<Ret, A8, A7, A6, A5, A4, A3, A2, A1> CType for BoxDynFnMut8<Ret, A8, A7, A6, A5, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    Ret: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Ret: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1> CType for ArcDynFn9<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    <Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)> as ReprC>::CLayout: CType,
    Ret: ReprC,
    A9: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ReprC,
    Ret: ReprC,
    A9: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A9: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1> CType for BoxDynFnMut9<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1> where
    <NonNull<c_void> as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret as ReprC>::CLayout: CType,
    <unsafe extern "C" fn(env_ptr: NonNull<c_void>) as ReprC>::CLayout: CType,
    Ret: ReprC,
    A9: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    NonNull<c_void>: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ReprC,
    unsafe extern "C" fn(env_ptr: NonNull<c_void>): ReprC,
    Ret: ReprC,
    A9: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC,
    Ret: ReprC,
    A9: ReprC,
    A8: ReprC,
    A7: ReprC,
    A6: ReprC,
    A5: ReprC,
    A4: ReprC,
    A3: ReprC,
    A2: ReprC,
    A1: ReprC
[src]

impl<T> CType for slice_boxed<T> where
    <NonNullOwned<T> as ReprC>::CLayout: CType,
    <usize as ReprC>::CLayout: CType,
    T: ReprC,
    NonNullOwned<T>: ReprC,
    usize: ReprC,
    T: ReprC
[src]

impl<T> CType for slice_raw<T> where
    <NonNull<T> as ReprC>::CLayout: CType,
    <usize as ReprC>::CLayout: CType,
    T: ReprC,
    NonNull<T>: ReprC,
    usize: ReprC,
    T: ReprC
[src]

impl<T> CType for Vec<T> where
    <NonNullOwned<T> as ReprC>::CLayout: CType,
    <usize as ReprC>::CLayout: CType,
    <usize as ReprC>::CLayout: CType,
    T: ReprC,
    NonNullOwned<T>: ReprC,
    usize: ReprC,
    usize: ReprC,
    T: ReprC
[src]

impl<T0> CType for Tuple1<T0> where
    <T0 as ReprC>::CLayout: CType,
    T0: ReprC,
    T0: ReprC,
    T0: ReprC
[src]

impl<T0, T1> CType for Tuple2<T0, T1> where
    <T0 as ReprC>::CLayout: CType,
    <T1 as ReprC>::CLayout: CType,
    T0: ReprC,
    T1: ReprC,
    T0: ReprC,
    T1: ReprC,
    T0: ReprC,
    T1: ReprC
[src]

impl<T0, T1, T2> CType for Tuple3<T0, T1, T2> where
    <T0 as ReprC>::CLayout: CType,
    <T1 as ReprC>::CLayout: CType,
    <T2 as ReprC>::CLayout: CType,
    T0: ReprC,
    T1: ReprC,
    T2: ReprC,
    T0: ReprC,
    T1: ReprC,
    T2: ReprC,
    T0: ReprC,
    T1: ReprC,
    T2: ReprC
[src]

impl<T0, T1, T2, T3> CType for Tuple4<T0, T1, T2, T3> where
    <T0 as ReprC>::CLayout: CType,
    <T1 as ReprC>::CLayout: CType,
    <T2 as ReprC>::CLayout: CType,
    <T3 as ReprC>::CLayout: CType,
    T0: ReprC,
    T1: ReprC,
    T2: ReprC,
    T3: ReprC,
    T0: ReprC,
    T1: ReprC,
    T2: ReprC,
    T3: ReprC,
    T0: ReprC,
    T1: ReprC,
    T2: ReprC,
    T3: ReprC
[src]

impl<T0, T1, T2, T3, T4> CType for Tuple5<T0, T1, T2, T3, T4> where
    <T0 as ReprC>::CLayout: CType,
    <T1 as ReprC>::CLayout: CType,
    <T2 as ReprC>::CLayout: CType,
    <T3 as ReprC>::CLayout: CType,
    <T4 as ReprC>::CLayout: CType,
    T0: ReprC,
    T1: ReprC,
    T2: ReprC,
    T3: ReprC,
    T4: ReprC,
    T0: ReprC,
    T1: ReprC,
    T2: ReprC,
    T3: ReprC,
    T4: ReprC,
    T0: ReprC,
    T1: ReprC,
    T2: ReprC,
    T3: ReprC,
    T4: ReprC
[src]

impl<T0, T1, T2, T3, T4, T5> CType for Tuple6<T0, T1, T2, T3, T4, T5> where
    <T0 as ReprC>::CLayout: CType,
    <T1 as ReprC>::CLayout: CType,
    <T2 as ReprC>::CLayout: CType,
    <T3 as ReprC>::CLayout: CType,
    <T4 as ReprC>::CLayout: CType,
    <T5 as ReprC>::CLayout: CType,
    T0: ReprC,
    T1: ReprC,
    T2: ReprC,
    T3: ReprC,
    T4: ReprC,
    T5: ReprC,
    T0: ReprC,
    T1: ReprC,
    T2: ReprC,
    T3: ReprC,
    T4: ReprC,
    T5: ReprC,
    T0: ReprC,
    T1: ReprC,
    T2: ReprC,
    T3: ReprC,
    T4: ReprC,
    T5: ReprC
[src]

Loading content...