Trait objc2_encode::RefEncode
source · pub unsafe trait RefEncode {
const ENCODING_REF: Encoding;
}
Expand description
Types whoose references has an Objective-C type-encoding.
Implementing this for T
provides Encode
implementations for:
*const T
*mut T
&T
&mut T
NonNull<T>
Option<&T>
Option<&mut T>
Option<NonNull<T>>
Reasoning behind this trait’s existence
External crates cannot implement Encode
for pointers or Option
s
containing references, so instead, they can implement this trait.
Additionally it would be very cumbersome if every type had to implement
Encode
for all possible pointer types.
Finally, having this trait allows for much cleaner generic code that need to represent types that can be encoded as pointers.
Safety
References to the object must be FFI-safe.
See the nomicon entry on representing opaque structs for
information on how to represent objects that you don’t know the layout of
(or use extern type
(RFC-1861) if you’re using nightly).
Objective-C will make assumptions about the type (like its size, alignment and ABI) from its encoding, so the implementer must verify that the encoding is accurate.
Concretely, Self::ENCODING_REF
must match the result of running
@encode
in Objective-C with a pointer to the type in question.
Required Associated Constants§
sourceconst ENCODING_REF: Encoding
const ENCODING_REF: Encoding
The Objective-C type-encoding for a reference of this type.
Should be one of Encoding::Object
, Encoding::Block
,
Encoding::Class
, Encoding::Pointer
, Encoding::Sel
or
Encoding::Unknown
.
Examples
This is usually implemented either as an object pointer:
const ENCODING_REF: Encoding = Encoding::Object;
Or as a pointer to the type, delegating the rest to the Encode
implementation:
const ENCODING_REF: Encoding = Encoding::Pointer(&Self::ENCODING);
Implementations on Foreign Types§
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J) -> Ret>
const ENCODING_REF: Encoding = _
source§impl RefEncode for Option<NonZeroU32>
impl RefEncode for Option<NonZeroU32>
const ENCODING_REF: Encoding = u32::ENCODING_REF
source§impl<Ret: Encode, A: Encode, B: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B) -> Ret
impl<Ret: Encode, A: Encode, B: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B) -> Ret
const ENCODING_REF: Encoding = _
source§impl RefEncode for Option<NonZeroIsize>
impl RefEncode for Option<NonZeroIsize>
const ENCODING_REF: Encoding = isize::ENCODING_REF
source§impl<Ret: Encode, A: Encode, B: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode, L: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode, L: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode, L: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode, L: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode> RefEncode for Option<unsafe extern "C" fn(_: A) -> Ret>
impl<Ret: Encode, A: Encode> RefEncode for Option<unsafe extern "C" fn(_: A) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H) -> Ret
const ENCODING_REF: Encoding = _
source§impl RefEncode for Option<NonZeroU16>
impl RefEncode for Option<NonZeroU16>
const ENCODING_REF: Encoding = u16::ENCODING_REF
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode> RefEncode for extern "C" fn(_: A, ...) -> Ret
impl<Ret: Encode, A: Encode> RefEncode for extern "C" fn(_: A, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode, L: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode, L: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L) -> Ret>
const ENCODING_REF: Encoding = _
source§impl RefEncode for Option<NonZeroI16>
impl RefEncode for Option<NonZeroI16>
const ENCODING_REF: Encoding = i16::ENCODING_REF
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl RefEncode for Option<NonZeroI32>
impl RefEncode for Option<NonZeroI32>
const ENCODING_REF: Encoding = i32::ENCODING_REF
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode> RefEncode for unsafe extern "C" fn() -> Ret
impl<Ret: Encode> RefEncode for unsafe extern "C" fn() -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H) -> Ret
const ENCODING_REF: Encoding = _
source§impl RefEncode for AtomicIsize
impl RefEncode for AtomicIsize
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl RefEncode for u8
impl RefEncode for u8
Pointers to u8
use the special Encoding::String
encoding.
const ENCODING_REF: Encoding = Encoding::String
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode> RefEncode for extern "C" fn(_: A, _: B) -> Ret
impl<Ret: Encode, A: Encode, B: Encode> RefEncode for extern "C" fn(_: A, _: B) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode, L: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode, L: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode, L: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode, L: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G) -> Ret
const ENCODING_REF: Encoding = _
source§impl<'a, T: RefEncode + ?Sized> RefEncode for Option<&'a mut T>
impl<'a, T: RefEncode + ?Sized> RefEncode for Option<&'a mut T>
const ENCODING_REF: Encoding = _
source§impl<T: RefEncode> RefEncode for Wrapping<T>
impl<T: RefEncode> RefEncode for Wrapping<T>
const ENCODING_REF: Encoding = T::ENCODING_REF
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<T: RefEncode> RefEncode for MaybeUninit<T>
impl<T: RefEncode> RefEncode for MaybeUninit<T>
const ENCODING_REF: Encoding = T::ENCODING_REF
source§impl RefEncode for Option<NonZeroU64>
impl RefEncode for Option<NonZeroU64>
const ENCODING_REF: Encoding = u64::ENCODING_REF
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode, L: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode, L: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl RefEncode for AtomicUsize
impl RefEncode for AtomicUsize
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl RefEncode for NonZeroI64
impl RefEncode for NonZeroI64
const ENCODING_REF: Encoding = i64::ENCODING_REF
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl RefEncode for NonZeroU16
impl RefEncode for NonZeroU16
const ENCODING_REF: Encoding = u16::ENCODING_REF
source§impl<'a, T: RefEncode + ?Sized> RefEncode for Option<&'a T>
impl<'a, T: RefEncode + ?Sized> RefEncode for Option<&'a T>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode> RefEncode for Option<extern "C" fn(_: A) -> Ret>
impl<Ret: Encode, A: Encode> RefEncode for Option<extern "C" fn(_: A) -> Ret>
const ENCODING_REF: Encoding = _
source§impl RefEncode for NonZeroUsize
impl RefEncode for NonZeroUsize
const ENCODING_REF: Encoding = usize::ENCODING_REF
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl RefEncode for NonZeroU64
impl RefEncode for NonZeroU64
const ENCODING_REF: Encoding = u64::ENCODING_REF
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode> RefEncode for unsafe extern "C" fn(_: A, ...) -> Ret
impl<Ret: Encode, A: Encode> RefEncode for unsafe extern "C" fn(_: A, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode, L: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode, L: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl RefEncode for NonZeroIsize
impl RefEncode for NonZeroIsize
const ENCODING_REF: Encoding = isize::ENCODING_REF
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, ...) -> Ret>
impl<Ret: Encode, A: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<T: RefEncode + ?Sized> RefEncode for ManuallyDrop<T>
impl<T: RefEncode + ?Sized> RefEncode for ManuallyDrop<T>
const ENCODING_REF: Encoding = T::ENCODING_REF
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode> RefEncode for Option<extern "C" fn(_: A, ...) -> Ret>
impl<Ret: Encode, A: Encode> RefEncode for Option<extern "C" fn(_: A, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K) -> Ret
const ENCODING_REF: Encoding = _
source§impl RefEncode for NonZeroU32
impl RefEncode for NonZeroU32
const ENCODING_REF: Encoding = u32::ENCODING_REF
source§impl RefEncode for Option<NonZeroI64>
impl RefEncode for Option<NonZeroI64>
const ENCODING_REF: Encoding = i64::ENCODING_REF
source§impl<T: Encode, const LENGTH: usize> RefEncode for [T; LENGTH]
impl<T: Encode, const LENGTH: usize> RefEncode for [T; LENGTH]
const ENCODING_REF: Encoding = _
source§impl RefEncode for Option<NonZeroUsize>
impl RefEncode for Option<NonZeroUsize>
const ENCODING_REF: Encoding = usize::ENCODING_REF
source§impl<Ret: Encode> RefEncode for Option<unsafe extern "C" fn() -> Ret>
impl<Ret: Encode> RefEncode for Option<unsafe extern "C" fn() -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode> RefEncode for extern "C" fn(_: A) -> Ret
impl<Ret: Encode, A: Encode> RefEncode for extern "C" fn(_: A) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, ...) -> Ret
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, ...) -> Ret
const ENCODING_REF: Encoding = _
source§impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, ...) -> Ret>
impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, ...) -> Ret>
const ENCODING_REF: Encoding = _
source§impl RefEncode for i8
impl RefEncode for i8
Pointers to i8
use the special Encoding::String
encoding.