pub unsafe trait ReprC: Sized {
type CLayout: CType;
// Required method
fn is_valid(it: &Self::CLayout) -> bool;
}
Expand description
The meat of the crate. The trait.
This trait describes that a type has a defined / fixed #[repr(C)]
layout.
This is expressed at the type level by the unsafe
(trait) type
association of ReprC::CLayout
, which must be a CType
.
Because of that property, the type may be used in the API of an
#[ffi_export]
-ed function, where ABI-wise it will be replaced by its
equivalent C layout.
Then, #[ffi_export]
will transmute the CType
parameters back to the
provided ReprC
types, using from_raw_unchecked
.
Although, from a pure point of view, no checks are performed at this step
whatsoever, in practice, when debug_assertions
are enabled, some “sanity
checks” are performed on the input parameters: ReprC::is_valid
is
called in that case (as part of the implementation of from_raw
).
-
Although that may look innocent, it is actually pretty powerful tool:
For instance, a non-null pointer coming from C can, this way, be automatically checked and unwrapped, and the same applies for enumerations having a finite number of valid bit-patterns.
§Safety
It must be sound to transmute from a ReprC::CLayout
instance when the
bit pattern represents a safe instance of Self
.
§Implementing ReprC
It is generally recommended to avoid manually (and unsafe
-ly)
implementing the ReprC
trait. Instead, the recommended and blessed way
is to use the #[derive_ReprC]
attribute on your #[repr(C)] struct
(or your field-less
#[repr(<integer>)] enum
).
§Examples
§Simple struct
use ::safer_ffi::prelude::*;
#[derive_ReprC]
#[repr(C)]
struct Instant {
seconds: u64,
nanos: u32,
}
-
corresponding to the following C definition:
typedef struct { uint64_t seconds; uint32_t nanos; } Instant_t;
§Field-less enum
use ::safer_ffi::prelude::*;
#[derive_ReprC]
#[repr(u8)]
enum Status {
Ok = 0,
Busy,
NotInTheMood,
OnStrike,
OhNo,
}
-
corresponding to the following C definition:
typedef uint8_t Status_t; enum { STATUS_OK = 0, STATUS_BUSY, STATUS_NOT_IN_THE_MOOD, STATUS_ON_STRIKE, STATUS_OH_NO, }
§Generic struct
use ::safer_ffi::prelude::*;
#[derive_ReprC]
#[repr(C)]
struct Point<Coordinate : ReprC> {
x: Coordinate,
y: Coordinate,
}
Each monomorphization leads to its own C definition:
-
Point<i32>
typedef struct { int32_t x; int32_t y; } Point_int32_t;
-
Point<f64>
typedef struct { double x; double y; } Point_double_t;
Required Associated Types§
Required Methods§
sourcefn is_valid(it: &Self::CLayout) -> bool
fn is_valid(it: &Self::CLayout) -> bool
Sanity checks that can be performed on an instance of the CType
layout.
Such checks are performed when calling from_raw
, or equivalently
(⚠️ only with debug_assertions
enabled ⚠️), from_raw_unchecked
.
Implementation-wise, this function is only a “sanity check” step:
-
It is valid (although rather pointless) for this function to always return
true
, even if the input may beunsafe
to transmute toSelf
, or even be an invalid value of typeSelf
. -
In the other direction, it is not unsound, although it would be a logic error, to always return
false
. -
This is because it is impossible to have a function that for any type is able to tell if a given bit pattern is a safe value of that type.
In practice, if this function returns false
, then such result must be
trusted, i.e., transmuting such instance to the Self
type will,
at the very least, break a safety invariant, and it will even most
probably break a validity invariant.
On the other hand, if the function returns true
, then the result is
inconclusive; there is no explicit reason to stop going on, but that
doesn’t necessarily make it sound.
§TL,DR
This function may yield false positives but no false negatives.
§Example: Self = &'borrow i32
When Self = &'borrow i32
, we know that the backing pointer is
necessarily non-null and well-aligned.
This means that bit-patterns such as 0 as *const i32
or
37 as *const i32
are “blatantly unsound” to transmute to a
&'borrow i32
, and thus <&'borrow i32 as ReprC>::is_valid
will
return false
in such cases.
But if given 4 as *const i32
, or if given { let p = &*Box::new(42) as *const i32; p }
, then is_valid
will return true
in both cases,
since it doesn’t know better.
§Example: bool
or #[repr(u8)] enum Foo { A, B }
In the case of bool
, or in the case of a #[repr(<integer>)]
field-less enum, then the valid bit-patterns and the invalid
bit-patterns are all known and finite.
In that case, ReprC::is_valid
will return a bool
that truly
represents the validity of the bit-pattern, in both directions
- i.e., no false positives (validity-wise);
Still, there may be safety invariants involved with custom types, so even then it is unclear.
Object Safety§
Implementations on Foreign Types§
source§impl<Item: ReprC> ReprC for [Item; 1]
impl<Item: ReprC> ReprC for [Item; 1]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 2]
impl<Item: ReprC> ReprC for [Item; 2]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 3]
impl<Item: ReprC> ReprC for [Item; 3]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 4]
impl<Item: ReprC> ReprC for [Item; 4]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 5]
impl<Item: ReprC> ReprC for [Item; 5]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 6]
impl<Item: ReprC> ReprC for [Item; 6]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 7]
impl<Item: ReprC> ReprC for [Item; 7]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 8]
impl<Item: ReprC> ReprC for [Item; 8]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 9]
impl<Item: ReprC> ReprC for [Item; 9]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 10]
impl<Item: ReprC> ReprC for [Item; 10]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 11]
impl<Item: ReprC> ReprC for [Item; 11]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 12]
impl<Item: ReprC> ReprC for [Item; 12]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 13]
impl<Item: ReprC> ReprC for [Item; 13]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 14]
impl<Item: ReprC> ReprC for [Item; 14]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 15]
impl<Item: ReprC> ReprC for [Item; 15]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 16]
impl<Item: ReprC> ReprC for [Item; 16]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 17]
impl<Item: ReprC> ReprC for [Item; 17]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 18]
impl<Item: ReprC> ReprC for [Item; 18]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 19]
impl<Item: ReprC> ReprC for [Item; 19]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 20]
impl<Item: ReprC> ReprC for [Item; 20]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 21]
impl<Item: ReprC> ReprC for [Item; 21]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 22]
impl<Item: ReprC> ReprC for [Item; 22]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 23]
impl<Item: ReprC> ReprC for [Item; 23]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 24]
impl<Item: ReprC> ReprC for [Item; 24]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 25]
impl<Item: ReprC> ReprC for [Item; 25]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 26]
impl<Item: ReprC> ReprC for [Item; 26]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 27]
impl<Item: ReprC> ReprC for [Item; 27]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 28]
impl<Item: ReprC> ReprC for [Item; 28]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 29]
impl<Item: ReprC> ReprC for [Item; 29]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 30]
impl<Item: ReprC> ReprC for [Item; 30]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 31]
impl<Item: ReprC> ReprC for [Item; 31]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 32]
impl<Item: ReprC> ReprC for [Item; 32]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 40]
impl<Item: ReprC> ReprC for [Item; 40]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 48]
impl<Item: ReprC> ReprC for [Item; 48]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 50]
impl<Item: ReprC> ReprC for [Item; 50]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 60]
impl<Item: ReprC> ReprC for [Item; 60]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 64]
impl<Item: ReprC> ReprC for [Item; 64]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 70]
impl<Item: ReprC> ReprC for [Item; 70]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 75]
impl<Item: ReprC> ReprC for [Item; 75]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 80]
impl<Item: ReprC> ReprC for [Item; 80]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 90]
impl<Item: ReprC> ReprC for [Item; 90]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 96]
impl<Item: ReprC> ReprC for [Item; 96]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 100]
impl<Item: ReprC> ReprC for [Item; 100]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 125]
impl<Item: ReprC> ReprC for [Item; 125]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 128]
impl<Item: ReprC> ReprC for [Item; 128]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 192]
impl<Item: ReprC> ReprC for [Item; 192]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 200]
impl<Item: ReprC> ReprC for [Item; 200]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 250]
impl<Item: ReprC> ReprC for [Item; 250]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 256]
impl<Item: ReprC> ReprC for [Item; 256]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 300]
impl<Item: ReprC> ReprC for [Item; 300]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 400]
impl<Item: ReprC> ReprC for [Item; 400]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 500]
impl<Item: ReprC> ReprC for [Item; 500]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 512]
impl<Item: ReprC> ReprC for [Item; 512]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 600]
impl<Item: ReprC> ReprC for [Item; 600]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 700]
impl<Item: ReprC> ReprC for [Item; 700]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 750]
impl<Item: ReprC> ReprC for [Item; 750]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 800]
impl<Item: ReprC> ReprC for [Item; 800]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 900]
impl<Item: ReprC> ReprC for [Item; 900]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 1000]
impl<Item: ReprC> ReprC for [Item; 1000]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Item: ReprC> ReprC for [Item; 1024]
impl<Item: ReprC> ReprC for [Item; 1024]
Simplified for lighter documentation, but the actual impls
range from 1
up to 32
, plus a bunch of significant
lengths up to 1024
.
source§impl<Ret: ReprC> ReprC for Option<extern "C" fn() -> Ret>
impl<Ret: ReprC> ReprC for Option<extern "C" fn() -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC> ReprC for Option<unsafe extern "C" fn() -> Ret>
impl<Ret: ReprC> ReprC for Option<unsafe extern "C" fn() -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC> ReprC for extern "C" fn() -> Ret
impl<Ret: ReprC> ReprC for extern "C" fn() -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC> ReprC for unsafe extern "C" fn() -> Ret
impl<Ret: ReprC> ReprC for unsafe extern "C" fn() -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A1) -> Ret>
impl<Ret: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A1) -> Ret>
impl<Ret: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A1) -> Ret
impl<Ret: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A1) -> Ret
impl<Ret: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A2, _: A1) -> Ret>
impl<Ret: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A2, _: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A2, _: A1) -> Ret>
impl<Ret: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A2, _: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A2: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A2, _: A1) -> Ret
impl<Ret: ReprC, A2: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A2, _: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A2: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A2, _: A1) -> Ret
impl<Ret: ReprC, A2: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A2, _: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A3, _: A2, _: A1) -> Ret>
impl<Ret: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A3, _: A2, _: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A3, _: A2, _: A1) -> Ret>
impl<Ret: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A3, _: A2, _: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A3, _: A2, _: A1) -> Ret
impl<Ret: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A3, _: A2, _: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A3, _: A2, _: A1) -> Ret
impl<Ret: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A3, _: A2, _: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A4, _: A3, _: A2, _: A1) -> Ret>
impl<Ret: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A4, _: A3, _: A2, _: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A4, _: A3, _: A2, _: A1) -> Ret>
impl<Ret: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A4, _: A3, _: A2, _: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A4, _: A3, _: A2, _: A1) -> Ret
impl<Ret: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A4, _: A3, _: A2, _: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A4, _: A3, _: A2, _: A1) -> Ret
impl<Ret: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A4, _: A3, _: A2, _: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
impl<Ret: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
impl<Ret: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
impl<Ret: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
impl<Ret: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
impl<Ret: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
impl<Ret: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
impl<Ret: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
impl<Ret: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
source§impl<Ret: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
impl<Ret: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
type CLayout = Option<unsafe extern "C" fn(_: <A7 as ReprC>::CLayout, _: <A6 as ReprC>::CLayout, _: <A5 as ReprC>::CLayout, _: <A4 as ReprC>::CLayout, _: <A3 as ReprC>::CLayout, _: <A2 as ReprC>::CLayout, _: <A1 as ReprC>::CLayout) -> <Ret as ReprC>::CLayout>
fn is_valid(_: &Self::CLayout) -> bool
source§impl<Ret: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
impl<Ret: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
type CLayout = Option<unsafe extern "C" fn(_: <A7 as ReprC>::CLayout, _: <A6 as ReprC>::CLayout, _: <A5 as ReprC>::CLayout, _: <A4 as ReprC>::CLayout, _: <A3 as ReprC>::CLayout, _: <A2 as ReprC>::CLayout, _: <A1 as ReprC>::CLayout) -> <Ret as ReprC>::CLayout>
fn is_valid(_: &Self::CLayout) -> bool
source§impl<Ret: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
impl<Ret: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
type CLayout = Option<unsafe extern "C" fn(_: <A7 as ReprC>::CLayout, _: <A6 as ReprC>::CLayout, _: <A5 as ReprC>::CLayout, _: <A4 as ReprC>::CLayout, _: <A3 as ReprC>::CLayout, _: <A2 as ReprC>::CLayout, _: <A1 as ReprC>::CLayout) -> <Ret as ReprC>::CLayout>
fn is_valid(c_layout: &Self::CLayout) -> bool
source§impl<Ret: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
impl<Ret: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
type CLayout = Option<unsafe extern "C" fn(_: <A7 as ReprC>::CLayout, _: <A6 as ReprC>::CLayout, _: <A5 as ReprC>::CLayout, _: <A4 as ReprC>::CLayout, _: <A3 as ReprC>::CLayout, _: <A2 as ReprC>::CLayout, _: <A1 as ReprC>::CLayout) -> <Ret as ReprC>::CLayout>
fn is_valid(c_layout: &Self::CLayout) -> bool
source§impl<Ret: ReprC, A8: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
impl<Ret: ReprC, A8: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
type CLayout = Option<unsafe extern "C" fn(_: <A8 as ReprC>::CLayout, _: <A7 as ReprC>::CLayout, _: <A6 as ReprC>::CLayout, _: <A5 as ReprC>::CLayout, _: <A4 as ReprC>::CLayout, _: <A3 as ReprC>::CLayout, _: <A2 as ReprC>::CLayout, _: <A1 as ReprC>::CLayout) -> <Ret as ReprC>::CLayout>
fn is_valid(_: &Self::CLayout) -> bool
source§impl<Ret: ReprC, A8: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
impl<Ret: ReprC, A8: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
type CLayout = Option<unsafe extern "C" fn(_: <A8 as ReprC>::CLayout, _: <A7 as ReprC>::CLayout, _: <A6 as ReprC>::CLayout, _: <A5 as ReprC>::CLayout, _: <A4 as ReprC>::CLayout, _: <A3 as ReprC>::CLayout, _: <A2 as ReprC>::CLayout, _: <A1 as ReprC>::CLayout) -> <Ret as ReprC>::CLayout>
fn is_valid(_: &Self::CLayout) -> bool
source§impl<Ret: ReprC, A8: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
impl<Ret: ReprC, A8: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
type CLayout = Option<unsafe extern "C" fn(_: <A8 as ReprC>::CLayout, _: <A7 as ReprC>::CLayout, _: <A6 as ReprC>::CLayout, _: <A5 as ReprC>::CLayout, _: <A4 as ReprC>::CLayout, _: <A3 as ReprC>::CLayout, _: <A2 as ReprC>::CLayout, _: <A1 as ReprC>::CLayout) -> <Ret as ReprC>::CLayout>
fn is_valid(c_layout: &Self::CLayout) -> bool
source§impl<Ret: ReprC, A8: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
impl<Ret: ReprC, A8: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
type CLayout = Option<unsafe extern "C" fn(_: <A8 as ReprC>::CLayout, _: <A7 as ReprC>::CLayout, _: <A6 as ReprC>::CLayout, _: <A5 as ReprC>::CLayout, _: <A4 as ReprC>::CLayout, _: <A3 as ReprC>::CLayout, _: <A2 as ReprC>::CLayout, _: <A1 as ReprC>::CLayout) -> <Ret as ReprC>::CLayout>
fn is_valid(c_layout: &Self::CLayout) -> bool
source§impl<Ret: ReprC, A9: ReprC, A8: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
impl<Ret: ReprC, A9: ReprC, A8: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<extern "C" fn(_: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
type CLayout = Option<unsafe extern "C" fn(_: <A9 as ReprC>::CLayout, _: <A8 as ReprC>::CLayout, _: <A7 as ReprC>::CLayout, _: <A6 as ReprC>::CLayout, _: <A5 as ReprC>::CLayout, _: <A4 as ReprC>::CLayout, _: <A3 as ReprC>::CLayout, _: <A2 as ReprC>::CLayout, _: <A1 as ReprC>::CLayout) -> <Ret as ReprC>::CLayout>
fn is_valid(_: &Self::CLayout) -> bool
source§impl<Ret: ReprC, A9: ReprC, A8: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
impl<Ret: ReprC, A9: ReprC, A8: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for Option<unsafe extern "C" fn(_: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret>
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
type CLayout = Option<unsafe extern "C" fn(_: <A9 as ReprC>::CLayout, _: <A8 as ReprC>::CLayout, _: <A7 as ReprC>::CLayout, _: <A6 as ReprC>::CLayout, _: <A5 as ReprC>::CLayout, _: <A4 as ReprC>::CLayout, _: <A3 as ReprC>::CLayout, _: <A2 as ReprC>::CLayout, _: <A1 as ReprC>::CLayout) -> <Ret as ReprC>::CLayout>
fn is_valid(_: &Self::CLayout) -> bool
source§impl<Ret: ReprC, A9: ReprC, A8: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
impl<Ret: ReprC, A9: ReprC, A8: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for extern "C" fn(_: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
type CLayout = Option<unsafe extern "C" fn(_: <A9 as ReprC>::CLayout, _: <A8 as ReprC>::CLayout, _: <A7 as ReprC>::CLayout, _: <A6 as ReprC>::CLayout, _: <A5 as ReprC>::CLayout, _: <A4 as ReprC>::CLayout, _: <A3 as ReprC>::CLayout, _: <A2 as ReprC>::CLayout, _: <A1 as ReprC>::CLayout) -> <Ret as ReprC>::CLayout>
fn is_valid(c_layout: &Self::CLayout) -> bool
source§impl<Ret: ReprC, A9: ReprC, A8: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
impl<Ret: ReprC, A9: ReprC, A8: ReprC, A7: ReprC, A6: ReprC, A5: ReprC, A4: ReprC, A3: ReprC, A2: ReprC, A1: ReprC> ReprC for unsafe extern "C" fn(_: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret
Simplified for lighter documentation, but the actual impls include up to 9 function parameters.
type CLayout = Option<unsafe extern "C" fn(_: <A9 as ReprC>::CLayout, _: <A8 as ReprC>::CLayout, _: <A7 as ReprC>::CLayout, _: <A6 as ReprC>::CLayout, _: <A5 as ReprC>::CLayout, _: <A4 as ReprC>::CLayout, _: <A3 as ReprC>::CLayout, _: <A2 as ReprC>::CLayout, _: <A1 as ReprC>::CLayout) -> <Ret as ReprC>::CLayout>
fn is_valid(c_layout: &Self::CLayout) -> bool
source§impl<T: ?Sized> ReprC for PhantomData<T>
impl<T: ?Sized> ReprC for PhantomData<T>
Implementors§
source§impl ReprC for PollFuture
Available on crate feature dyn-traits
only.
impl ReprC for PollFuture
dyn-traits
only.type CLayout = PollFuture_Layout
source§impl ReprC for char_p_boxed
impl ReprC for char_p_boxed
source§impl ReprC for char_p_raw
impl ReprC for char_p_raw
source§impl ReprC for DynDrop
Available on crate feature dyn-traits
only.
impl ReprC for DynDrop
dyn-traits
only.type CLayout = <VirtualPtr<dyn StaticDropGlue + Sync + Send> as ReprC>::CLayout
source§impl ReprC for PollFuture_Layout
Available on crate feature dyn-traits
only.
impl ReprC for PollFuture_Layout
dyn-traits
only.type CLayout = PollFuture_Layout
source§impl<'__usability> ReprC for DropGlueVTable<'__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> ReprC for DropGlueVTable<'__usability>where
unsafe extern "C" fn(_: NonNullOwned<ErasedTy>): ConcreteReprC,
PhantomData<*mut (<u8 as IdentityIgnoring<'__usability>>::ItSelf,)>: ConcreteReprC,
dyn-traits
only.type CLayout = DropGlueVTable_Layout<'__usability>
source§impl<'__usability> ReprC 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> ReprC for DropGlueVTable_Layout<'__usability>where
unsafe extern "C" fn(_: NonNullOwned<ErasedTy>): ConcreteReprC,
PhantomData<*mut (<u8 as IdentityIgnoring<'__usability>>::ItSelf,)>: ConcreteReprC,
dyn-traits
only.type CLayout = DropGlueVTable_Layout<'__usability>
source§impl<'__usability> ReprC for StaticDropGlueVTable<'__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> ReprC for StaticDropGlueVTable<'__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,
dyn-traits
only.type CLayout = StaticDropGlueVTable_Layout<'__usability>
source§impl<'__usability> ReprC 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> ReprC 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,
dyn-traits
only.type CLayout = StaticDropGlueVTable_Layout<'__usability>
source§impl<'__usability> ReprC for FfiFutureExecutorVTable<'__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 feature dyn-traits
only.
impl<'__usability> ReprC for FfiFutureExecutorVTable<'__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,
dyn-traits
only.type CLayout = FfiFutureExecutorVTable_Layout<'__usability>
source§impl<'__usability> ReprC 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 feature dyn-traits
only.
impl<'__usability> ReprC 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,
dyn-traits
only.type CLayout = FfiFutureExecutorVTable_Layout<'__usability>
source§impl<'__usability> ReprC for FfiFutureVTable<'__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 feature dyn-traits
only.
impl<'__usability> ReprC for FfiFutureVTable<'__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,
dyn-traits
only.type CLayout = FfiFutureVTable_Layout<'__usability>
source§impl<'__usability> ReprC 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 feature dyn-traits
only.
impl<'__usability> ReprC 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,
dyn-traits
only.type CLayout = FfiFutureVTable_Layout<'__usability>
source§impl<'lt> ReprC for char_p_ref<'lt>
impl<'lt> ReprC for char_p_ref<'lt>
source§impl<'lt, Ret> ReprC for RefDynFnMut0<'lt, Ret>where
Ret: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret> ReprC for RefDynFnMut0<'lt, Ret>where
Ret: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut0_Layout<'lt, Ret>
source§impl<'lt, Ret> ReprC for RefDynFnMut0_Layout<'lt, Ret>where
Ret: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret> ReprC for RefDynFnMut0_Layout<'lt, Ret>where
Ret: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut0_Layout<'lt, Ret>
source§impl<'lt, Ret, A1> ReprC for RefDynFnMut1<'lt, Ret, A1>where
Ret: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A1> ReprC for RefDynFnMut1<'lt, Ret, A1>where
Ret: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut1_Layout<'lt, Ret, A1>
source§impl<'lt, Ret, A1> ReprC for RefDynFnMut1_Layout<'lt, Ret, A1>where
Ret: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A1> ReprC for RefDynFnMut1_Layout<'lt, Ret, A1>where
Ret: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut1_Layout<'lt, Ret, A1>
source§impl<'lt, Ret, A2, A1> ReprC for RefDynFnMut2<'lt, Ret, A2, A1>where
Ret: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A2, A1> ReprC for RefDynFnMut2<'lt, Ret, A2, A1>where
Ret: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut2_Layout<'lt, Ret, A2, A1>
source§impl<'lt, Ret, A2, A1> ReprC for RefDynFnMut2_Layout<'lt, Ret, A2, A1>where
Ret: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A2, A1> ReprC for RefDynFnMut2_Layout<'lt, Ret, A2, A1>where
Ret: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut2_Layout<'lt, Ret, A2, A1>
source§impl<'lt, Ret, A3, A2, A1> ReprC for RefDynFnMut3<'lt, Ret, A3, A2, A1>where
Ret: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A3, A2, A1> ReprC for RefDynFnMut3<'lt, Ret, A3, A2, A1>where
Ret: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut3_Layout<'lt, Ret, A3, A2, A1>
source§impl<'lt, Ret, A3, A2, A1> ReprC for RefDynFnMut3_Layout<'lt, Ret, A3, A2, A1>where
Ret: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A3, A2, A1> ReprC for RefDynFnMut3_Layout<'lt, Ret, A3, A2, A1>where
Ret: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut3_Layout<'lt, Ret, A3, A2, A1>
source§impl<'lt, Ret, A4, A3, A2, A1> ReprC for RefDynFnMut4<'lt, Ret, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A4, A3, A2, A1> ReprC for RefDynFnMut4<'lt, Ret, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut4_Layout<'lt, Ret, A4, A3, A2, A1>
source§impl<'lt, Ret, A4, A3, A2, A1> ReprC for RefDynFnMut4_Layout<'lt, Ret, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A4, A3, A2, A1> ReprC for RefDynFnMut4_Layout<'lt, Ret, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut4_Layout<'lt, Ret, A4, A3, A2, A1>
source§impl<'lt, Ret, A5, A4, A3, A2, A1> ReprC for RefDynFnMut5<'lt, Ret, A5, A4, A3, A2, A1>
impl<'lt, Ret, A5, A4, A3, A2, A1> ReprC for RefDynFnMut5<'lt, Ret, A5, A4, A3, A2, A1>
type CLayout = RefDynFnMut5_Layout<'lt, Ret, A5, A4, A3, A2, A1>
source§impl<'lt, Ret, A5, A4, A3, A2, A1> ReprC for RefDynFnMut5_Layout<'lt, Ret, A5, A4, A3, A2, A1>
impl<'lt, Ret, A5, A4, A3, A2, A1> ReprC for RefDynFnMut5_Layout<'lt, Ret, A5, A4, A3, A2, A1>
type CLayout = RefDynFnMut5_Layout<'lt, Ret, A5, A4, A3, A2, A1>
source§impl<'lt, Ret, A6, A5, A4, A3, A2, A1> ReprC for RefDynFnMut6<'lt, Ret, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A6, A5, A4, A3, A2, A1> ReprC for RefDynFnMut6<'lt, Ret, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut6_Layout<'lt, Ret, A6, A5, A4, A3, A2, A1>
source§impl<'lt, Ret, A6, A5, A4, A3, A2, A1> ReprC for RefDynFnMut6_Layout<'lt, Ret, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A6, A5, A4, A3, A2, A1> ReprC for RefDynFnMut6_Layout<'lt, Ret, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut6_Layout<'lt, Ret, A6, A5, A4, A3, A2, A1>
source§impl<'lt, Ret, A7, A6, A5, A4, A3, A2, A1> ReprC for RefDynFnMut7<'lt, Ret, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A7, A6, A5, A4, A3, A2, A1> ReprC for RefDynFnMut7<'lt, Ret, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut7_Layout<'lt, Ret, A7, A6, A5, A4, A3, A2, A1>
source§impl<'lt, Ret, A7, A6, A5, A4, A3, A2, A1> ReprC for RefDynFnMut7_Layout<'lt, Ret, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A7, A6, A5, A4, A3, A2, A1> ReprC for RefDynFnMut7_Layout<'lt, Ret, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut7_Layout<'lt, Ret, A7, A6, A5, A4, A3, A2, A1>
source§impl<'lt, Ret, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for RefDynFnMut8<'lt, Ret, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for RefDynFnMut8<'lt, Ret, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut8_Layout<'lt, Ret, A8, A7, A6, A5, A4, A3, A2, A1>
source§impl<'lt, Ret, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for RefDynFnMut8_Layout<'lt, Ret, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for RefDynFnMut8_Layout<'lt, Ret, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut8_Layout<'lt, Ret, A8, A7, A6, A5, A4, A3, A2, A1>
source§impl<'lt, Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for RefDynFnMut9<'lt, Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A9: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for RefDynFnMut9<'lt, Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A9: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut9_Layout<'lt, Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>
source§impl<'lt, Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for RefDynFnMut9_Layout<'lt, Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A9: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for RefDynFnMut9_Layout<'lt, Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A9: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = RefDynFnMut9_Layout<'lt, Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>
source§impl<'lt, T> ReprC for slice_mut<'lt, T>where
T: 'lt + ReprC,
NonNullMut<T>: ConcreteReprC,
usize: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, T> ReprC for slice_mut<'lt, T>where
T: 'lt + ReprC,
NonNullMut<T>: ConcreteReprC,
usize: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = slice_mut_Layout<'lt, T>
source§impl<'lt, T> ReprC for slice_mut_Layout<'lt, T>where
T: 'lt + ReprC,
NonNullMut<T>: ConcreteReprC,
usize: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, T> ReprC for slice_mut_Layout<'lt, T>where
T: 'lt + ReprC,
NonNullMut<T>: ConcreteReprC,
usize: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = slice_mut_Layout<'lt, T>
source§impl<'lt, T> ReprC for slice_ref<'lt, T>where
T: 'lt + ReprC,
NonNullRef<T>: ConcreteReprC,
usize: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, T> ReprC for slice_ref<'lt, T>where
T: 'lt + ReprC,
NonNullRef<T>: ConcreteReprC,
usize: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = slice_ref_Layout<'lt, T>
source§impl<'lt, T> ReprC for slice_ref_Layout<'lt, T>where
T: 'lt + ReprC,
NonNullRef<T>: ConcreteReprC,
usize: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
impl<'lt, T> ReprC for slice_ref_Layout<'lt, T>where
T: 'lt + ReprC,
NonNullRef<T>: ConcreteReprC,
usize: ConcreteReprC,
PhantomData<&'lt ()>: ConcreteReprC,
type CLayout = slice_ref_Layout<'lt, T>
source§impl<DynTrait: ?Sized + ReprCTrait> ReprC for VirtualPtr<DynTrait>
Available on crate feature dyn-traits
only.
impl<DynTrait: ?Sized + ReprCTrait> ReprC for VirtualPtr<DynTrait>
dyn-traits
only.type CLayout = <VirtualPtr_<NonNullOwned<Erased>, <DynTrait as ReprCTrait>::VTable> as ReprC>::CLayout
source§impl<Ret> ReprC for ArcDynFn0<Ret>where
Ret: ReprC + 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> ReprC for ArcDynFn0<Ret>where
Ret: ReprC + 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,
alloc
only.type CLayout = ArcDynFn0_Layout<Ret>
source§impl<Ret> ReprC for ArcDynFn0_Layout<Ret>where
Ret: ReprC + 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> ReprC for ArcDynFn0_Layout<Ret>where
Ret: ReprC + 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,
alloc
only.type CLayout = ArcDynFn0_Layout<Ret>
source§impl<Ret> ReprC for BoxDynFnMut0<Ret>where
Ret: ReprC + 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> ReprC for BoxDynFnMut0<Ret>where
Ret: ReprC + 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,
alloc
only.type CLayout = BoxDynFnMut0_Layout<Ret>
source§impl<Ret> ReprC for BoxDynFnMut0_Layout<Ret>where
Ret: ReprC + 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> ReprC for BoxDynFnMut0_Layout<Ret>where
Ret: ReprC + 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,
alloc
only.type CLayout = BoxDynFnMut0_Layout<Ret>
source§impl<Ret, A1> ReprC for ArcDynFn1<Ret, A1>where
Ret: ReprC + ReprC,
A1: ReprC + 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> ReprC for ArcDynFn1<Ret, A1>where
Ret: ReprC + ReprC,
A1: ReprC + 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,
alloc
only.type CLayout = ArcDynFn1_Layout<Ret, A1>
source§impl<Ret, A1> ReprC for ArcDynFn1_Layout<Ret, A1>where
Ret: ReprC + ReprC,
A1: ReprC + 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> ReprC for ArcDynFn1_Layout<Ret, A1>where
Ret: ReprC + ReprC,
A1: ReprC + 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,
alloc
only.type CLayout = ArcDynFn1_Layout<Ret, A1>
source§impl<Ret, A1> ReprC for BoxDynFnMut1<Ret, A1>where
Ret: ReprC + ReprC,
A1: ReprC + 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> ReprC for BoxDynFnMut1<Ret, A1>where
Ret: ReprC + ReprC,
A1: ReprC + 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,
alloc
only.type CLayout = BoxDynFnMut1_Layout<Ret, A1>
source§impl<Ret, A1> ReprC for BoxDynFnMut1_Layout<Ret, A1>where
Ret: ReprC + ReprC,
A1: ReprC + 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> ReprC for BoxDynFnMut1_Layout<Ret, A1>where
Ret: ReprC + ReprC,
A1: ReprC + 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,
alloc
only.type CLayout = BoxDynFnMut1_Layout<Ret, A1>
source§impl<Ret, A2, A1> ReprC for ArcDynFn2<Ret, A2, A1>where
Ret: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A2, _: 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, A2, A1> ReprC for ArcDynFn2<Ret, A2, A1>where
Ret: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
alloc
only.type CLayout = ArcDynFn2_Layout<Ret, A2, A1>
source§impl<Ret, A2, A1> ReprC for ArcDynFn2_Layout<Ret, A2, A1>where
Ret: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A2, _: 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, A2, A1> ReprC for ArcDynFn2_Layout<Ret, A2, A1>where
Ret: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
alloc
only.type CLayout = ArcDynFn2_Layout<Ret, A2, A1>
source§impl<Ret, A2, A1> ReprC for BoxDynFnMut2<Ret, A2, A1>
Available on crate feature alloc
only.
impl<Ret, A2, A1> ReprC for BoxDynFnMut2<Ret, A2, A1>
alloc
only.type CLayout = BoxDynFnMut2_Layout<Ret, A2, A1>
source§impl<Ret, A2, A1> ReprC for BoxDynFnMut2_Layout<Ret, A2, A1>
Available on crate feature alloc
only.
impl<Ret, A2, A1> ReprC for BoxDynFnMut2_Layout<Ret, A2, A1>
alloc
only.type CLayout = BoxDynFnMut2_Layout<Ret, A2, A1>
source§impl<Ret, A3, A2, A1> ReprC for ArcDynFn3<Ret, A3, A2, A1>where
Ret: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A3, _: A2, _: 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, A3, A2, A1> ReprC for ArcDynFn3<Ret, A3, A2, A1>where
Ret: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
alloc
only.type CLayout = ArcDynFn3_Layout<Ret, A3, A2, A1>
source§impl<Ret, A3, A2, A1> ReprC for ArcDynFn3_Layout<Ret, A3, A2, A1>where
Ret: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A3, _: A2, _: 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, A3, A2, A1> ReprC for ArcDynFn3_Layout<Ret, A3, A2, A1>where
Ret: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
alloc
only.type CLayout = ArcDynFn3_Layout<Ret, A3, A2, A1>
source§impl<Ret, A3, A2, A1> ReprC for BoxDynFnMut3<Ret, A3, A2, A1>
Available on crate feature alloc
only.
impl<Ret, A3, A2, A1> ReprC for BoxDynFnMut3<Ret, A3, A2, A1>
alloc
only.type CLayout = BoxDynFnMut3_Layout<Ret, A3, A2, A1>
source§impl<Ret, A3, A2, A1> ReprC for BoxDynFnMut3_Layout<Ret, A3, A2, A1>
Available on crate feature alloc
only.
impl<Ret, A3, A2, A1> ReprC for BoxDynFnMut3_Layout<Ret, A3, A2, A1>
alloc
only.type CLayout = BoxDynFnMut3_Layout<Ret, A3, A2, A1>
source§impl<Ret, A4, A3, A2, A1> ReprC for ArcDynFn4<Ret, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A4, _: A3, _: A2, _: 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, A4, A3, A2, A1> ReprC for ArcDynFn4<Ret, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
alloc
only.type CLayout = ArcDynFn4_Layout<Ret, A4, A3, A2, A1>
source§impl<Ret, A4, A3, A2, A1> ReprC for ArcDynFn4_Layout<Ret, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A4, _: A3, _: A2, _: 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, A4, A3, A2, A1> ReprC for ArcDynFn4_Layout<Ret, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
alloc
only.type CLayout = ArcDynFn4_Layout<Ret, A4, A3, A2, A1>
source§impl<Ret, A4, A3, A2, A1> ReprC for BoxDynFnMut4<Ret, A4, A3, A2, A1>
Available on crate feature alloc
only.
impl<Ret, A4, A3, A2, A1> ReprC for BoxDynFnMut4<Ret, A4, A3, A2, A1>
alloc
only.type CLayout = BoxDynFnMut4_Layout<Ret, A4, A3, A2, A1>
source§impl<Ret, A4, A3, A2, A1> ReprC for BoxDynFnMut4_Layout<Ret, A4, A3, A2, A1>
Available on crate feature alloc
only.
impl<Ret, A4, A3, A2, A1> ReprC for BoxDynFnMut4_Layout<Ret, A4, A3, A2, A1>
alloc
only.type CLayout = BoxDynFnMut4_Layout<Ret, A4, A3, A2, A1>
source§impl<Ret, A5, A4, A3, A2, A1> ReprC for ArcDynFn5<Ret, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A5, _: A4, _: A3, _: A2, _: 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, A5, A4, A3, A2, A1> ReprC for ArcDynFn5<Ret, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
alloc
only.type CLayout = ArcDynFn5_Layout<Ret, A5, A4, A3, A2, A1>
source§impl<Ret, A5, A4, A3, A2, A1> ReprC for ArcDynFn5_Layout<Ret, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A5, _: A4, _: A3, _: A2, _: 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, A5, A4, A3, A2, A1> ReprC for ArcDynFn5_Layout<Ret, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
alloc
only.type CLayout = ArcDynFn5_Layout<Ret, A5, A4, A3, A2, A1>
source§impl<Ret, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut5<Ret, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Available on crate feature alloc
only.
impl<Ret, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut5<Ret, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
alloc
only.type CLayout = BoxDynFnMut5_Layout<Ret, A5, A4, A3, A2, A1>
source§impl<Ret, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut5_Layout<Ret, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Available on crate feature alloc
only.
impl<Ret, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut5_Layout<Ret, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
alloc
only.type CLayout = BoxDynFnMut5_Layout<Ret, A5, A4, A3, A2, A1>
source§impl<Ret, A6, A5, A4, A3, A2, A1> ReprC for ArcDynFn6<Ret, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: 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, A6, A5, A4, A3, A2, A1> ReprC for ArcDynFn6<Ret, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
alloc
only.type CLayout = ArcDynFn6_Layout<Ret, A6, A5, A4, A3, A2, A1>
source§impl<Ret, A6, A5, A4, A3, A2, A1> ReprC for ArcDynFn6_Layout<Ret, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: 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, A6, A5, A4, A3, A2, A1> ReprC for ArcDynFn6_Layout<Ret, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
alloc
only.type CLayout = ArcDynFn6_Layout<Ret, A6, A5, A4, A3, A2, A1>
source§impl<Ret, A6, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut6<Ret, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Available on crate feature alloc
only.
impl<Ret, A6, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut6<Ret, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
alloc
only.type CLayout = BoxDynFnMut6_Layout<Ret, A6, A5, A4, A3, A2, A1>
source§impl<Ret, A6, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut6_Layout<Ret, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Available on crate feature alloc
only.
impl<Ret, A6, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut6_Layout<Ret, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
alloc
only.type CLayout = BoxDynFnMut6_Layout<Ret, A6, A5, A4, A3, A2, A1>
source§impl<Ret, A7, A6, A5, A4, A3, A2, A1> ReprC for ArcDynFn7<Ret, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: 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, A7, A6, A5, A4, A3, A2, A1> ReprC for ArcDynFn7<Ret, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
alloc
only.type CLayout = ArcDynFn7_Layout<Ret, A7, A6, A5, A4, A3, A2, A1>
source§impl<Ret, A7, A6, A5, A4, A3, A2, A1> ReprC for ArcDynFn7_Layout<Ret, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: 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, A7, A6, A5, A4, A3, A2, A1> ReprC for ArcDynFn7_Layout<Ret, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
alloc
only.type CLayout = ArcDynFn7_Layout<Ret, A7, A6, A5, A4, A3, A2, A1>
source§impl<Ret, A7, A6, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut7<Ret, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Available on crate feature alloc
only.
impl<Ret, A7, A6, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut7<Ret, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
alloc
only.type CLayout = BoxDynFnMut7_Layout<Ret, A7, A6, A5, A4, A3, A2, A1>
source§impl<Ret, A7, A6, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut7_Layout<Ret, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Available on crate feature alloc
only.
impl<Ret, A7, A6, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut7_Layout<Ret, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
alloc
only.type CLayout = BoxDynFnMut7_Layout<Ret, A7, A6, A5, A4, A3, A2, A1>
source§impl<Ret, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for ArcDynFn8<Ret, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: 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, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for ArcDynFn8<Ret, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
alloc
only.type CLayout = ArcDynFn8_Layout<Ret, A8, A7, A6, A5, A4, A3, A2, A1>
source§impl<Ret, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for ArcDynFn8_Layout<Ret, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: 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, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for ArcDynFn8_Layout<Ret, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
alloc
only.type CLayout = ArcDynFn8_Layout<Ret, A8, A7, A6, A5, A4, A3, A2, A1>
source§impl<Ret, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut8<Ret, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Available on crate feature alloc
only.
impl<Ret, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut8<Ret, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
alloc
only.type CLayout = BoxDynFnMut8_Layout<Ret, A8, A7, A6, A5, A4, A3, A2, A1>
source§impl<Ret, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut8_Layout<Ret, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Available on crate feature alloc
only.
impl<Ret, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut8_Layout<Ret, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
alloc
only.type CLayout = BoxDynFnMut8_Layout<Ret, A8, A7, A6, A5, A4, A3, A2, A1>
source§impl<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for ArcDynFn9<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A9: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: 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, A9, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for ArcDynFn9<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A9: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
alloc
only.type CLayout = ArcDynFn9_Layout<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>
source§impl<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for ArcDynFn9_Layout<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A9: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: 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, A9, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for ArcDynFn9_Layout<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A9: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Option<unsafe extern "C" fn(env_ptr: NonNull<c_void>)>: ConcreteReprC,
alloc
only.type CLayout = ArcDynFn9_Layout<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>
source§impl<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut9<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A9: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Available on crate feature alloc
only.
impl<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut9<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A9: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
alloc
only.type CLayout = BoxDynFnMut9_Layout<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>
source§impl<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut9_Layout<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A9: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
Available on crate feature alloc
only.
impl<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1> ReprC for BoxDynFnMut9_Layout<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>where
Ret: ReprC + ReprC,
A9: ReprC + ReprC,
A8: ReprC + ReprC,
A7: ReprC + ReprC,
A6: ReprC + ReprC,
A5: ReprC + ReprC,
A4: ReprC + ReprC,
A3: ReprC + ReprC,
A2: ReprC + ReprC,
A1: ReprC + ReprC,
NonNull<c_void>: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>, _: A9, _: A8, _: A7, _: A6, _: A5, _: A4, _: A3, _: A2, _: A1) -> Ret: ConcreteReprC,
unsafe extern "C" fn(env_ptr: NonNull<c_void>): ConcreteReprC,
alloc
only.type CLayout = BoxDynFnMut9_Layout<Ret, A9, A8, A7, A6, A5, A4, A3, A2, A1>
source§impl<T0> ReprC for Tuple1<T0>where
T0: ReprC + ConcreteReprC,
impl<T0> ReprC for Tuple1<T0>where
T0: ReprC + ConcreteReprC,
type CLayout = Tuple1_Layout<T0>
source§impl<T0> ReprC for Tuple1_Layout<T0>where
T0: ReprC + ConcreteReprC,
impl<T0> ReprC for Tuple1_Layout<T0>where
T0: ReprC + ConcreteReprC,
type CLayout = Tuple1_Layout<T0>
source§impl<T0, T1> ReprC for Tuple2_Layout<T0, T1>
impl<T0, T1> ReprC for Tuple2_Layout<T0, T1>
type CLayout = Tuple2_Layout<T0, T1>
source§impl<T0, T1, T2> ReprC for Tuple3_Layout<T0, T1, T2>
impl<T0, T1, T2> ReprC for Tuple3_Layout<T0, T1, T2>
type CLayout = Tuple3_Layout<T0, T1, T2>
source§impl<T0, T1, T2, T3> ReprC for Tuple4<T0, T1, T2, T3>where
T0: ReprC + ConcreteReprC,
T1: ReprC + ConcreteReprC,
T2: ReprC + ConcreteReprC,
T3: ReprC + ConcreteReprC,
impl<T0, T1, T2, T3> ReprC for Tuple4<T0, T1, T2, T3>where
T0: ReprC + ConcreteReprC,
T1: ReprC + ConcreteReprC,
T2: ReprC + ConcreteReprC,
T3: ReprC + ConcreteReprC,
type CLayout = Tuple4_Layout<T0, T1, T2, T3>
source§impl<T0, T1, T2, T3> ReprC for Tuple4_Layout<T0, T1, T2, T3>where
T0: ReprC + ConcreteReprC,
T1: ReprC + ConcreteReprC,
T2: ReprC + ConcreteReprC,
T3: ReprC + ConcreteReprC,
impl<T0, T1, T2, T3> ReprC for Tuple4_Layout<T0, T1, T2, T3>where
T0: ReprC + ConcreteReprC,
T1: ReprC + ConcreteReprC,
T2: ReprC + ConcreteReprC,
T3: ReprC + ConcreteReprC,
type CLayout = Tuple4_Layout<T0, T1, T2, T3>
source§impl<T0, T1, T2, T3, T4> ReprC for Tuple5<T0, T1, T2, T3, T4>where
T0: ReprC + ConcreteReprC,
T1: ReprC + ConcreteReprC,
T2: ReprC + ConcreteReprC,
T3: ReprC + ConcreteReprC,
T4: ReprC + ConcreteReprC,
impl<T0, T1, T2, T3, T4> ReprC for Tuple5<T0, T1, T2, T3, T4>where
T0: ReprC + ConcreteReprC,
T1: ReprC + ConcreteReprC,
T2: ReprC + ConcreteReprC,
T3: ReprC + ConcreteReprC,
T4: ReprC + ConcreteReprC,
type CLayout = Tuple5_Layout<T0, T1, T2, T3, T4>
source§impl<T0, T1, T2, T3, T4> ReprC for Tuple5_Layout<T0, T1, T2, T3, T4>where
T0: ReprC + ConcreteReprC,
T1: ReprC + ConcreteReprC,
T2: ReprC + ConcreteReprC,
T3: ReprC + ConcreteReprC,
T4: ReprC + ConcreteReprC,
impl<T0, T1, T2, T3, T4> ReprC for Tuple5_Layout<T0, T1, T2, T3, T4>where
T0: ReprC + ConcreteReprC,
T1: ReprC + ConcreteReprC,
T2: ReprC + ConcreteReprC,
T3: ReprC + ConcreteReprC,
T4: ReprC + ConcreteReprC,
type CLayout = Tuple5_Layout<T0, T1, T2, T3, T4>
source§impl<T0, T1, T2, T3, T4, T5> ReprC for Tuple6<T0, T1, T2, T3, T4, T5>where
T0: ReprC + ConcreteReprC,
T1: ReprC + ConcreteReprC,
T2: ReprC + ConcreteReprC,
T3: ReprC + ConcreteReprC,
T4: ReprC + ConcreteReprC,
T5: ReprC + ConcreteReprC,
impl<T0, T1, T2, T3, T4, T5> ReprC for Tuple6<T0, T1, T2, T3, T4, T5>where
T0: ReprC + ConcreteReprC,
T1: ReprC + ConcreteReprC,
T2: ReprC + ConcreteReprC,
T3: ReprC + ConcreteReprC,
T4: ReprC + ConcreteReprC,
T5: ReprC + ConcreteReprC,
type CLayout = Tuple6_Layout<T0, T1, T2, T3, T4, T5>
source§impl<T0, T1, T2, T3, T4, T5> ReprC for Tuple6_Layout<T0, T1, T2, T3, T4, T5>where
T0: ReprC + ConcreteReprC,
T1: ReprC + ConcreteReprC,
T2: ReprC + ConcreteReprC,
T3: ReprC + ConcreteReprC,
T4: ReprC + ConcreteReprC,
T5: ReprC + ConcreteReprC,
impl<T0, T1, T2, T3, T4, T5> ReprC for Tuple6_Layout<T0, T1, T2, T3, T4, T5>where
T0: ReprC + ConcreteReprC,
T1: ReprC + ConcreteReprC,
T2: ReprC + ConcreteReprC,
T3: ReprC + ConcreteReprC,
T4: ReprC + ConcreteReprC,
T5: ReprC + ConcreteReprC,
type CLayout = Tuple6_Layout<T0, T1, T2, T3, T4, T5>
source§impl<T> ReprC for Box_<T>where
NonNullOwned<T>: ReprC,
Available on crate feature alloc
only.
impl<T> ReprC for Box_<T>where
NonNullOwned<T>: ReprC,
alloc
only.type CLayout = <NonNullOwned<T> as ReprC>::CLayout
source§impl<T> ReprC for slice_boxed<T>
impl<T> ReprC for slice_boxed<T>
type CLayout = slice_boxed_Layout<T>
source§impl<T> ReprC for slice_boxed_Layout<T>
impl<T> ReprC for slice_boxed_Layout<T>
type CLayout = slice_boxed_Layout<T>
source§impl<T> ReprC for slice_raw_Layout<T>
impl<T> ReprC for slice_raw_Layout<T>
type CLayout = slice_raw_Layout<T>
source§impl<T> ReprC for safer_ffi::Vec<T>
Available on crate feature alloc
only.
impl<T> ReprC for safer_ffi::Vec<T>
alloc
only.type CLayout = Vec_Layout<T>
source§impl<T> ReprC for Vec_Layout<T>
Available on crate feature alloc
only.
impl<T> ReprC for Vec_Layout<T>
alloc
only.