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 Options 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§

source

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 RefEncode for AtomicU16

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

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>

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>

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>

source§

impl RefEncode for Option<NonZeroU32>

source§

const ENCODING_REF: Encoding = u32::ENCODING_REF

source§

impl<Ret: Encode, A: Encode, B: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B) -> Ret

source§

impl RefEncode for Option<NonZeroIsize>

source§

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>

source§

impl RefEncode for NonZeroU8

source§

const ENCODING_REF: Encoding = u8::ENCODING_REF

source§

impl<'a, T: RefEncode + ?Sized> RefEncode for &'a T

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>

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

source§

impl<Ret: Encode, A: Encode> RefEncode for Option<unsafe extern "C" fn(_: A) -> Ret>

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>

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

source§

impl RefEncode for Option<NonZeroU16>

source§

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>

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

source§

impl<T: RefEncode + ?Sized> RefEncode for *mut T

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, ...) -> Ret

source§

impl<Ret: Encode, A: Encode> RefEncode for extern "C" fn(_: A, ...) -> Ret

source§

impl<Ret: Encode, A: Encode, B: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, ...) -> Ret

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>

source§

impl RefEncode for Option<NonZeroI16>

source§

const ENCODING_REF: Encoding = i16::ENCODING_REF

source§

impl RefEncode for AtomicU32

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>

source§

impl RefEncode for Option<NonZeroI32>

source§

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

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>

source§

impl RefEncode for f32

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

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D) -> Ret>

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>

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

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C) -> Ret

source§

impl RefEncode for i16

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, ...) -> Ret>

source§

impl<Ret: Encode> RefEncode for unsafe extern "C" fn() -> Ret

source§

impl RefEncode for usize

source§

impl RefEncode for AtomicU64

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

source§

impl RefEncode for AtomicIsize

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>

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>

source§

impl RefEncode for u8

Pointers to u8 use the special Encoding::String encoding.

source§

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

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>

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

source§

impl<Ret: Encode, A: Encode, B: Encode> RefEncode for extern "C" fn(_: A, _: B) -> Ret

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D) -> Ret>

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

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

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>

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

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

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

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>

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

source§

impl<'a, T: RefEncode + ?Sized> RefEncode for Option<&'a mut T>

source§

impl RefEncode for AtomicI16

source§

impl<T: RefEncode> RefEncode for Wrapping<T>

source§

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

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

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>

source§

impl<T: RefEncode> RefEncode for MaybeUninit<T>

source§

const ENCODING_REF: Encoding = T::ENCODING_REF

source§

impl RefEncode for Option<NonZeroU64>

source§

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>

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>

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, ...) -> Ret>

source§

impl RefEncode for AtomicUsize

source§

impl<T: RefEncode + ?Sized> RefEncode for NonNull<T>

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

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

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

source§

impl RefEncode for Option<NonZeroI8>

source§

const ENCODING_REF: Encoding = i8::ENCODING_REF

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>

source§

impl<T: RefEncode + ?Sized> RefEncode for *const T

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D) -> Ret

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C) -> Ret>

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>

source§

impl RefEncode for NonZeroI64

source§

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>

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>

source§

impl<Ret: Encode, A: Encode, B: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, ...) -> Ret>

source§

impl RefEncode for AtomicI8

source§

impl RefEncode for NonZeroU16

source§

const ENCODING_REF: Encoding = u16::ENCODING_REF

source§

impl RefEncode for isize

source§

impl<'a, T: RefEncode + ?Sized> RefEncode for Option<&'a T>

source§

impl<Ret: Encode, A: Encode> RefEncode for Option<extern "C" fn(_: A) -> Ret>

source§

impl RefEncode for NonZeroUsize

source§

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

source§

impl RefEncode for NonZeroU64

source§

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

source§

impl RefEncode for u64

source§

impl<Ret: Encode, A: Encode> RefEncode for unsafe extern "C" fn(_: A, ...) -> Ret

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>

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D) -> Ret

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

source§

impl RefEncode for NonZeroIsize

source§

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>

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>

source§

impl<Ret: Encode, A: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, ...) -> Ret>

source§

impl RefEncode for AtomicU8

source§

impl<T: RefEncode + ?Sized> RefEncode for ManuallyDrop<T>

source§

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

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, ...) -> Ret

source§

impl<Ret: Encode, A: Encode> RefEncode for Option<extern "C" fn(_: A, ...) -> Ret>

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>

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

source§

impl RefEncode for NonZeroU32

source§

const ENCODING_REF: Encoding = u32::ENCODING_REF

source§

impl RefEncode for *mut c_void

source§

impl RefEncode for Option<NonZeroI64>

source§

const ENCODING_REF: Encoding = i64::ENCODING_REF

source§

impl RefEncode for f64

source§

impl<T: Encode, const LENGTH: usize> RefEncode for [T; LENGTH]

source§

impl RefEncode for Option<NonZeroUsize>

source§

const ENCODING_REF: Encoding = usize::ENCODING_REF

source§

impl<Ret: Encode> RefEncode for Option<unsafe extern "C" fn() -> Ret>

source§

impl<Ret: Encode, A: Encode, B: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, ...) -> Ret>

source§

impl<Ret: Encode, A: Encode> RefEncode for extern "C" fn(_: A) -> Ret

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

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>

source§

impl RefEncode for i8

Pointers to i8 use the special Encoding::String encoding.

source§

const ENCODING_REF: Encoding = Encoding::String

source§

impl RefEncode for Option<NonZeroU8>

source§

const ENCODING_REF: Encoding = u8::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 Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, ...) -> Ret>

source§

impl RefEncode for *const c_void

source§

impl RefEncode for AtomicI32

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C) -> Ret>

source§

impl<T: RefEncode> RefEncode for AtomicPtr<T>

source§

impl<Ret: Encode> RefEncode for extern "C" fn() -> Ret

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

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

source§

impl RefEncode for u16

source§

impl RefEncode for i32

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>

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

source§

impl RefEncode for u32

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I) -> Ret

source§

impl<Ret: Encode, A: Encode> RefEncode for unsafe extern "C" fn(_: A) -> Ret

source§

impl<Ret: Encode> RefEncode for Option<extern "C" fn() -> Ret>

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, ...) -> Ret>

source§

impl RefEncode for i64

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode, I: Encode> RefEncode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, ...) -> Ret

source§

impl RefEncode for AtomicI64

source§

impl RefEncode for NonZeroI32

source§

const ENCODING_REF: Encoding = i32::ENCODING_REF

source§

impl RefEncode for NonZeroI8

source§

const ENCODING_REF: Encoding = i8::ENCODING_REF

source§

impl RefEncode for NonZeroI16

source§

const ENCODING_REF: Encoding = i16::ENCODING_REF

source§

impl<Ret: Encode, A: Encode, B: Encode> RefEncode for extern "C" fn(_: A, _: B, ...) -> Ret

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

source§

impl<'a, T: RefEncode + ?Sized> RefEncode for &'a mut T

source§

impl<Ret: Encode, A: Encode, B: Encode> RefEncode for Option<extern "C" fn(_: A, _: B) -> Ret>

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, ...) -> Ret>

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode> RefEncode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E) -> Ret>

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

source§

impl<T: RefEncode + ?Sized> RefEncode for Option<NonNull<T>>

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode> RefEncode for unsafe extern "C" fn(_: A, _: B, _: C) -> Ret

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>

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> RefEncode for Option<extern "C" fn(_: A, _: B, _: C, _: D, ...) -> Ret>

Implementors§