Trait objc2_encode::Encode

source ·
pub unsafe trait Encode {
    const ENCODING: Encoding;
}
Expand description

Types that have an Objective-C type-encoding.

Usually you will want to implement RefEncode as well.

If your type is an opaque type you should not need to implement this; there you will only need RefEncode.

Safety

The type must be FFI-safe, meaning a C-compatible repr (repr(C), repr(u8), repr(transparent) where the inner types are C-compatible, and so on). See the nomicon on other reprs.

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 must match the result of running @encode in Objective-C with the type in question.

You should also beware of having Drop types implement this, since when passed to Objective-C via. objc2::msg_send! their destructor will not be called!

Examples

Implementing for a struct:

#[repr(C)]
struct MyType {
    a: i32,
    b: f64,
    c: *const c_void,
}

unsafe impl Encode for MyType {
    const ENCODING: Encoding = Encoding::Struct(
        // The name of the type that Objective-C sees.
        "MyType",
        &[
            // Delegate to field's implementations.
            // The order is the same as in the definition.
            i32::ENCODING,
            f64::ENCODING,
            <*const c_void>::ENCODING,
        ],
    );
}

// Note: You would also implement `RefEncode` for this type.

Required Associated Constants§

source

const ENCODING: Encoding

The Objective-C type-encoding for this type.

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> Encode 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> Encode for 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> Encode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I) -> Ret>

source§

impl Encode for NonZeroU32

source§

const ENCODING: Encoding = u32::ENCODING

source§

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

source§

impl Encode for u32

source§

const ENCODING: Encoding = Encoding::UInt

source§

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

source§

const ENCODING: Encoding = T::ENCODING_REF

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> Encode 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, H: Encode, I: Encode, J: Encode, K: Encode> Encode 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, E: Encode, F: Encode> Encode 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, J: Encode, K: Encode> Encode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K) -> Ret>

source§

impl Encode for *mut c_void

Encode is implemented manually for *mut c_void, instead of implementing RefEncode, to discourage creating &mut c_void.

source§

impl<T: Encode> Encode for MaybeUninit<T>

source§

const ENCODING: Encoding = T::ENCODING

source§

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

source§

const ENCODING: Encoding = T::ENCODING_REF

source§

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

source§

impl Encode for NonZeroI32

source§

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

source§

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

source§

impl Encode for u16

source§

const ENCODING: Encoding = Encoding::UShort

source§

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

source§

impl Encode for AtomicIsize

source§

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

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> Encode for 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> Encode 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, K: Encode, L: Encode> Encode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, ...) -> Ret

source§

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

source§

impl Encode for Option<NonZeroU32>

source§

const ENCODING: Encoding = u32::ENCODING

source§

impl Encode for NonZeroI64

source§

const ENCODING: Encoding = i64::ENCODING

source§

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

source§

const ENCODING: Encoding = T::ENCODING_REF

source§

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

source§

impl Encode for AtomicU32

source§

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

source§

impl Encode for AtomicU16

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode> Encode 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> Encode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, ...) -> Ret

source§

impl Encode for Option<NonZeroU8>

source§

const ENCODING: Encoding = u8::ENCODING

source§

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

source§

const ENCODING: Encoding = T::ENCODING_REF

source§

impl Encode for AtomicI8

source§

impl Encode for NonZeroI16

source§

const ENCODING: Encoding = i16::ENCODING

source§

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

source§

const ENCODING: Encoding = T::ENCODING_REF

source§

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

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode> Encode 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> Encode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, ...) -> Ret>

source§

impl<Ret: Encode, A: Encode> Encode 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> Encode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, ...) -> Ret

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode> Encode for Option<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> Encode 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, K: Encode, L: Encode> Encode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L) -> Ret>

source§

impl Encode for Option<NonZeroUsize>

source§

const ENCODING: Encoding = usize::ENCODING

source§

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

source§

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

source§

impl Encode for NonZeroUsize

source§

const ENCODING: Encoding = usize::ENCODING

source§

impl Encode for AtomicUsize

source§

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

source§

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

source§

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

source§

impl<Ret: Encode, A: Encode, B: Encode> Encode 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> Encode 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, H: Encode, I: Encode, J: Encode, K: Encode> Encode 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, I: Encode, J: Encode, K: Encode, L: Encode> Encode 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> Encode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G) -> Ret>

source§

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

source§

impl Encode for i64

source§

const ENCODING: Encoding = Encoding::LongLong

source§

impl Encode for AtomicI32

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

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

source§

const ENCODING: Encoding = T::ENCODING

source§

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

source§

impl Encode for NonZeroU8

source§

const ENCODING: Encoding = u8::ENCODING

source§

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

source§

impl Encode for u64

source§

const ENCODING: Encoding = Encoding::ULongLong

source§

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

source§

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

source§

impl Encode for Option<NonZeroI64>

source§

const ENCODING: Encoding = i64::ENCODING

source§

impl Encode for Option<NonZeroU16>

source§

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

source§

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

source§

const ENCODING: Encoding = T::ENCODING_REF

source§

impl Encode for ()

To allow usage as the return type of generic functions.

You should not rely on this encoding to exist for any other purpose (since () is not FFI-safe)!

source§

const ENCODING: Encoding = Encoding::Void

source§

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

source§

impl Encode for Option<NonZeroI16>

source§

const ENCODING: Encoding = i16::ENCODING

source§

impl<Ret: Encode, A: Encode> Encode 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, J: Encode> Encode 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> Encode 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> Encode 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, I: Encode, J: Encode> Encode 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, F: Encode, G: Encode, H: Encode, I: Encode, J: Encode, K: Encode, L: Encode> Encode for 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> Encode for Option<extern "C" fn(_: A, _: B, _: C) -> Ret>

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode> Encode for 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> Encode 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> Encode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F) -> Ret>

source§

impl Encode for f32

source§

const ENCODING: Encoding = Encoding::Float

source§

impl Encode for Option<NonZeroI8>

source§

const ENCODING: Encoding = i8::ENCODING

source§

impl Encode for AtomicI16

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> Encode 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, I: Encode, J: Encode> Encode 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> Encode for 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> Encode 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> Encode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, ...) -> Ret>

source§

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

source§

const ENCODING: Encoding = T::ENCODING_REF

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode> Encode for Option<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> Encode 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, G: Encode, H: Encode, I: Encode> Encode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, ...) -> Ret

source§

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

source§

impl<T: Encode> Encode for Wrapping<T>

source§

const ENCODING: Encoding = T::ENCODING

source§

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

source§

impl Encode for usize

The encoding of usize varies based on the target pointer width.

source§

const ENCODING: Encoding = u64::ENCODING

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> Encode for 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> Encode 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> Encode for extern "C" fn(_: A, _: B, _: C, _: D, _: E) -> Ret

source§

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

source§

impl Encode for AtomicU8

source§

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

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode> Encode for 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> Encode for Option<unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, ...) -> Ret>

source§

impl Encode for Option<NonZeroU64>

source§

const ENCODING: Encoding = u64::ENCODING

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> Encode 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, I: Encode> Encode 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> Encode for Option<extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H) -> Ret>

source§

impl Encode for isize

The encoding of isize varies based on the target pointer width.

source§

const ENCODING: Encoding = i64::ENCODING

source§

impl Encode for *const c_void

Encode is implemented manually for *const c_void, instead of implementing RefEncode, to discourage creating &c_void.

source§

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

source§

const ENCODING: Encoding = T::ENCODING_REF

source§

impl Encode for NonZeroU64

source§

const ENCODING: Encoding = u64::ENCODING

source§

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

source§

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

source§

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

source§

impl Encode for u8

source§

const ENCODING: Encoding = Encoding::UChar

source§

impl Encode for NonZeroU16

source§

const ENCODING: Encoding = u16::ENCODING

source§

impl Encode for NonZeroI8

source§

const ENCODING: Encoding = i8::ENCODING

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode, E: Encode, F: Encode, G: Encode, H: Encode> Encode for 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> Encode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G) -> Ret

source§

impl Encode for NonZeroIsize

source§

const ENCODING: Encoding = isize::ENCODING

source§

impl Encode for i16

source§

const ENCODING: Encoding = Encoding::Short

source§

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

source§

impl Encode for f64

source§

const ENCODING: Encoding = Encoding::Double

source§

impl Encode for i8

source§

const ENCODING: Encoding = Encoding::Char

source§

impl Encode for i32

source§

const ENCODING: Encoding = Encoding::Int

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

source§

impl Encode for Option<NonZeroIsize>

source§

const ENCODING: Encoding = isize::ENCODING

source§

impl Encode for AtomicI64

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> Encode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L) -> Ret

source§

impl Encode for AtomicU64

source§

impl<Ret: Encode, A: Encode, B: Encode, C: Encode, D: Encode> Encode 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, H: Encode, I: Encode, J: Encode> Encode 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> Encode for extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, ...) -> Ret

source§

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

source§

impl Encode for Option<NonZeroI32>

source§

const ENCODING: Encoding = i32::ENCODING

source§

impl<Ret: Encode, A: Encode, B: Encode> Encode for Option<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> Encode 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, K: Encode, L: Encode> Encode 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> Encode 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> Encode for unsafe extern "C" fn(_: A, _: B, _: C, _: D, _: E, _: F, _: G, _: H, _: I, _: J, _: K, _: L, ...) -> Ret

source§

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

Implementors§