mod test;
use core::cell::{Cell, UnsafeCell};
use core::cmp::Reverse;
use core::marker::{PhantomData, PhantomPinned};
use core::mem::{ManuallyDrop, MaybeUninit};
use core::num::{NonZero, Saturating, Wrapping};
use core::ptr::NonNull;
#[cfg(feature = "alloc")]
use alloc::alloc::{alloc_zeroed, handle_alloc_error};
#[cfg(feature = "alloc")]
use alloc::boxed::Box;
#[cfg(feature = "alloc")]
use core::alloc::Layout;
#[cfg(feature = "alloc")]
use oct::Outlay;
#[cfg(feature = "ascii")]
use core::ascii;
#[cfg(feature = "bstr")]
use core::bstr::ByteStr;
#[cfg(feature = "simd")]
use core::simd::{Simd, SimdElement};
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
use core::arch::aarch64 as arch;
#[cfg(target_arch = "wasm32")]
use core::arch::wasm32 as arch;
#[cfg(target_arch = "x86")]
use core::arch::x86 as arch;
#[cfg(target_arch = "x86_64")]
use core::arch::x86_64 as arch;
#[cfg(all(target_has_atomic = "128", feature = "atomic_u128_i128"))]
use core::sync::atomic::{AtomicI128, AtomicU128};
#[cfg(target_has_atomic = "16")]
use core::sync::atomic::{AtomicI16, AtomicU16};
#[cfg(target_has_atomic = "32")]
use core::sync::atomic::{AtomicI32, AtomicU32};
#[cfg(target_has_atomic = "64")]
use core::sync::atomic::{AtomicI64, AtomicU64};
#[cfg(target_has_atomic = "8")]
use core::sync::atomic::{AtomicBool, AtomicI8, AtomicU8};
#[cfg(target_has_atomic = "ptr")]
use core::sync::atomic::{AtomicIsize, AtomicPtr, AtomicUsize};
#[doc(alias = "FromZeros")]
pub unsafe trait Zeroable {
#[inline]
#[must_use]
fn new_zeroed() -> Self
where
Self: Sized,
{
let mut this = MaybeUninit::<Self>::uninit();
this.make_zeroed();
unsafe { this.assume_init() }
}
#[cfg(feature = "alloc")]
#[must_use]
fn new_zeroed_boxed() -> Box<Self>
where
Self: Outlay<Metadata: Default>,
{
let metadata = Default::default();
Self::new_zeroed_boxed_with_metadata(metadata)
}
#[cfg(feature = "alloc")]
#[must_use]
fn new_zeroed_boxed_with_metadata(metadata: Self::Metadata) -> Box<Self>
where
Self: Outlay,
{
let Ok(layout) = Self::layout_for_metadata(metadata) else {
panic!("cannot compute layout for object of size `{metadata:?}`");
};
let raw = if layout.size() > 0 {
let data = unsafe { alloc_zeroed(layout) };
if data.is_null() {
handle_alloc_error(layout);
};
let raw = Self::ptr_from_raw_parts_mut(data, metadata);
#[cfg(debug_assertions)]
if layout.size() > 0 {
let r = unsafe { &*raw };
debug_assert_eq!(Layout::for_value(r), layout);
}
raw
} else {
Self::ptr_dangling_with_metadata_mut(metadata)
};
debug_assert_eq!(raw.addr() % Self::ALIGN, 0);
unsafe { Box::from_raw(raw) }
}
#[inline]
fn make_zeroed(&mut self) {
let len = size_of_val(self);
let ptr = (&raw mut *self).cast::<u8>();
unsafe { ptr.write_bytes(0b00000000, len) };
}
}
unsafe impl<T: Zeroable, const N: usize> Zeroable for [T; N] {}
#[cfg(target_has_atomic = "8")]
unsafe impl Zeroable for AtomicBool {}
#[cfg(all(target_has_atomic = "128", feature = "atomic_u128_i128"))]
unsafe impl Zeroable for AtomicI128 {}
#[cfg(target_has_atomic = "16")]
unsafe impl Zeroable for AtomicI16 {}
#[cfg(target_has_atomic = "32")]
unsafe impl Zeroable for AtomicI32 {}
#[cfg(target_has_atomic = "64")]
unsafe impl Zeroable for AtomicI64 {}
#[cfg(target_has_atomic = "8")]
unsafe impl Zeroable for AtomicI8 {}
#[cfg(target_has_atomic = "ptr")]
unsafe impl Zeroable for AtomicIsize {}
#[cfg(target_has_atomic = "ptr")]
unsafe impl<T> Zeroable for AtomicPtr<T> {}
#[cfg(all(target_has_atomic = "128", feature = "atomic_u128_i128"))]
unsafe impl Zeroable for AtomicU128 {}
#[cfg(target_has_atomic = "16")]
unsafe impl Zeroable for AtomicU16 {}
#[cfg(target_has_atomic = "32")]
unsafe impl Zeroable for AtomicU32 {}
#[cfg(target_has_atomic = "64")]
unsafe impl Zeroable for AtomicU64 {}
#[cfg(target_has_atomic = "8")]
unsafe impl Zeroable for AtomicU8 {}
#[cfg(target_has_atomic = "ptr")]
unsafe impl Zeroable for AtomicUsize {}
unsafe impl Zeroable for bool {}
#[cfg(feature = "bstr")]
unsafe impl Zeroable for ByteStr {}
unsafe impl<T: Zeroable> Zeroable for Cell<T> {}
unsafe impl Zeroable for char {}
#[cfg(feature = "ascii")]
unsafe impl Zeroable for ascii::Char {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
unsafe impl Zeroable for arch::CpuidResult {}
#[cfg(feature = "f128")]
unsafe impl Zeroable for f128 {}
#[cfg(feature = "f16")]
unsafe impl Zeroable for f16 {}
unsafe impl Zeroable for f32 {}
unsafe impl Zeroable for f64 {}
#[expect(clippy::incompatible_msrv)]
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
#[rustversion::since(1.94)]
unsafe impl Zeroable for arch::float16x4_t {}
#[expect(clippy::incompatible_msrv)]
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
#[rustversion::since(1.94)]
unsafe impl Zeroable for arch::float16x4x2_t {}
#[expect(clippy::incompatible_msrv)]
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
#[rustversion::since(1.94)]
unsafe impl Zeroable for arch::float16x4x3_t {}
#[expect(clippy::incompatible_msrv)]
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
#[rustversion::since(1.94)]
unsafe impl Zeroable for arch::float16x4x4_t {}
#[expect(clippy::incompatible_msrv)]
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
#[rustversion::since(1.94)]
unsafe impl Zeroable for arch::float16x8_t {}
#[expect(clippy::incompatible_msrv)]
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
#[rustversion::since(1.94)]
unsafe impl Zeroable for arch::float16x8x2_t {}
#[expect(clippy::incompatible_msrv)]
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
#[rustversion::since(1.94)]
unsafe impl Zeroable for arch::float16x8x3_t {}
#[expect(clippy::incompatible_msrv)]
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
#[rustversion::since(1.94)]
unsafe impl Zeroable for arch::float16x8x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::float32x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::float32x2x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::float32x2x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::float32x2x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::float32x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::float32x4x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::float32x4x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::float32x4x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
unsafe impl Zeroable for arch::float64x1_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
unsafe impl Zeroable for arch::float64x1x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
unsafe impl Zeroable for arch::float64x1x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
unsafe impl Zeroable for arch::float64x1x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
unsafe impl Zeroable for arch::float64x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
unsafe impl Zeroable for arch::float64x2x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
unsafe impl Zeroable for arch::float64x2x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec"))]
unsafe impl Zeroable for arch::float64x2x4_t {}
unsafe impl Zeroable for i128 {}
unsafe impl Zeroable for i16 {}
unsafe impl Zeroable for i32 {}
unsafe impl Zeroable for i64 {}
unsafe impl Zeroable for i8 {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int16x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int16x4x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int16x4x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int16x4x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int16x8_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int16x8x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int16x8x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int16x8x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int32x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int32x2x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int32x2x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int32x2x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int32x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int32x4x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int32x4x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int32x4x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int64x1_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int64x1x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int64x1x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int64x1x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int64x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int64x2x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int64x2x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int64x2x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int8x16_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int8x16x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int8x16x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int8x16x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int8x8_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int8x8x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int8x8x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::int8x8x4_t {}
unsafe impl Zeroable for isize {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
unsafe impl Zeroable for arch::__m128 {}
#[expect(clippy::incompatible_msrv)]
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[rustversion::since(1.89)]
unsafe impl Zeroable for arch::__m128bh {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
unsafe impl Zeroable for arch::__m128d {}
#[expect(clippy::incompatible_msrv)]
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[rustversion::since(1.94)]
unsafe impl Zeroable for arch::__m128h {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
unsafe impl Zeroable for arch::__m128i {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
unsafe impl Zeroable for arch::__m256 {}
#[expect(clippy::incompatible_msrv)]
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[rustversion::since(1.89)]
unsafe impl Zeroable for arch::__m256bh {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
unsafe impl Zeroable for arch::__m256d {}
#[expect(clippy::incompatible_msrv)]
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[rustversion::since(1.94)]
unsafe impl Zeroable for arch::__m256h {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
unsafe impl Zeroable for arch::__m256i {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
unsafe impl Zeroable for arch::__m512 {}
#[expect(clippy::incompatible_msrv)]
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[rustversion::since(1.89)]
unsafe impl Zeroable for arch::__m512bh {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
unsafe impl Zeroable for arch::__m512d {}
#[expect(clippy::incompatible_msrv)]
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
#[rustversion::since(1.94)]
unsafe impl Zeroable for arch::__m512h {}
#[cfg(any(target_arch = "x86", target_arch = "x86_64"))]
unsafe impl Zeroable for arch::__m512i {}
unsafe impl<T: Zeroable> Zeroable for ManuallyDrop<T> {}
unsafe impl<T> Zeroable for MaybeUninit<T> {}
unsafe impl Zeroable for Option<fn()> {}
unsafe impl<T> Zeroable for Option<fn(T)> {}
unsafe impl<T0, T1> Zeroable for Option<fn(T0, T1)> {}
unsafe impl<T0, T1, T2> Zeroable for Option<fn(T0, T1, T2)> {}
unsafe impl<T0, T1, T2, T3> Zeroable for Option<fn(T0, T1, T2, T3)> {}
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<fn(T0, T1, T2, T3, T4)> {}
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<fn(T0, T1, T2, T3, T4, T5)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<fn(T0, T1, T2, T3, T4, T5, T6)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "arm")]
unsafe impl Zeroable for Option<extern "aapcs" fn()> {}
#[cfg(target_arch = "arm")]
unsafe impl<T> Zeroable for Option<extern "aapcs" fn(T)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1> Zeroable for Option<extern "aapcs" fn(T0, T1)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2> Zeroable for Option<extern "aapcs" fn(T0, T1, T2)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "aapcs" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "aapcs" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "aapcs" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "aapcs" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "aapcs" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "aapcs" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "aapcs" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "aapcs" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "aapcs" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "arm")]
unsafe impl Zeroable for Option<extern "aapcs-unwind" fn()> {}
#[cfg(target_arch = "arm")]
unsafe impl<T> Zeroable for Option<extern "aapcs-unwind" fn(T)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1> Zeroable for Option<extern "aapcs-unwind" fn(T0, T1)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2> Zeroable for Option<extern "aapcs-unwind" fn(T0, T1, T2)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "aapcs-unwind" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "aapcs-unwind" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "aapcs-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "aapcs-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "aapcs-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "aapcs-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "aapcs-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "aapcs-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "aapcs-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
unsafe impl Zeroable for Option<extern "C" fn()> {}
unsafe impl<T> Zeroable for Option<extern "C" fn(T)> {}
unsafe impl<T0, T1> Zeroable for Option<extern "C" fn(T0, T1)> {}
unsafe impl<T0, T1, T2> Zeroable for Option<extern "C" fn(T0, T1, T2)> {}
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "C" fn(T0, T1, T2, T3)> {}
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "C" fn(T0, T1, T2, T3, T4)> {}
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "C" fn(T0, T1, T2, T3, T4, T5)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "C" fn(T0, T1, T2, T3, T4, T5, T6)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "C" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "C" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "C" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "C" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "C" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
unsafe impl Zeroable for Option<extern "C-unwind" fn()> {}
unsafe impl<T> Zeroable for Option<extern "C-unwind" fn(T)> {}
unsafe impl<T0, T1> Zeroable for Option<extern "C-unwind" fn(T0, T1)> {}
unsafe impl<T0, T1, T2> Zeroable for Option<extern "C-unwind" fn(T0, T1, T2)> {}
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "C-unwind" fn(T0, T1, T2, T3)> {}
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "C-unwind" fn(T0, T1, T2, T3, T4)> {}
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "C-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "C-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "C-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "C-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "C-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "C-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "C-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86")]
unsafe impl Zeroable for Option<extern "cdecl" fn()> {}
#[cfg(target_arch = "x86")]
unsafe impl<T> Zeroable for Option<extern "cdecl" fn(T)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1> Zeroable for Option<extern "cdecl" fn(T0, T1)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2> Zeroable for Option<extern "cdecl" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "cdecl" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "cdecl" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "cdecl" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "cdecl" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "cdecl" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "cdecl" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "cdecl" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "cdecl" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "cdecl" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86")]
unsafe impl Zeroable for Option<extern "cdecl-unwind" fn()> {}
#[cfg(target_arch = "x86")]
unsafe impl<T> Zeroable for Option<extern "cdecl-unwind" fn(T)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1> Zeroable for Option<extern "cdecl-unwind" fn(T0, T1)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2> Zeroable for Option<extern "cdecl-unwind" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "cdecl-unwind" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "cdecl-unwind" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "cdecl-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "cdecl-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "cdecl-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "cdecl-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "cdecl-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "cdecl-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "cdecl-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl Zeroable for Option<extern "efiapi" fn()> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T> Zeroable for Option<extern "efiapi" fn(T)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1> Zeroable for Option<extern "efiapi" fn(T0, T1)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2> Zeroable for Option<extern "efiapi" fn(T0, T1, T2)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "efiapi" fn(T0, T1, T2, T3)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "efiapi" fn(T0, T1, T2, T3, T4)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "efiapi" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "efiapi" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "efiapi" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "efiapi" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "efiapi" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "efiapi" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "efiapi" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86")]
unsafe impl Zeroable for Option<extern "fastcall" fn()> {}
#[cfg(target_arch = "x86")]
unsafe impl<T> Zeroable for Option<extern "fastcall" fn(T)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1> Zeroable for Option<extern "fastcall" fn(T0, T1)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2> Zeroable for Option<extern "fastcall" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "fastcall" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "fastcall" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "fastcall" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "fastcall" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "fastcall" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "fastcall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "fastcall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "fastcall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "fastcall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86")]
unsafe impl Zeroable for Option<extern "fastcall-unwind" fn()> {}
#[cfg(target_arch = "x86")]
unsafe impl<T> Zeroable for Option<extern "fastcall-unwind" fn(T)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1> Zeroable for Option<extern "fastcall-unwind" fn(T0, T1)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2> Zeroable for Option<extern "fastcall-unwind" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "fastcall-unwind" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "fastcall-unwind" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "fastcall-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "fastcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "fastcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "fastcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "fastcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "fastcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "fastcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86")]
unsafe impl Zeroable for Option<extern "stdcall" fn()> {}
#[cfg(target_arch = "x86")]
unsafe impl<T> Zeroable for Option<extern "stdcall" fn(T)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1> Zeroable for Option<extern "stdcall" fn(T0, T1)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2> Zeroable for Option<extern "stdcall" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "stdcall" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "stdcall" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "stdcall" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "stdcall" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "stdcall" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "stdcall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "stdcall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "stdcall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "stdcall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86")]
unsafe impl Zeroable for Option<extern "stdcall-unwind" fn()> {}
#[cfg(target_arch = "x86")]
unsafe impl<T> Zeroable for Option<extern "stdcall-unwind" fn(T)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1> Zeroable for Option<extern "stdcall-unwind" fn(T0, T1)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2> Zeroable for Option<extern "stdcall-unwind" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "stdcall-unwind" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "stdcall-unwind" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "stdcall-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "stdcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "stdcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "stdcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "stdcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "stdcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "stdcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl Zeroable for Option<extern "sysv64" fn()> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T> Zeroable for Option<extern "sysv64" fn(T)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1> Zeroable for Option<extern "sysv64" fn(T0, T1)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2> Zeroable for Option<extern "sysv64" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "sysv64" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "sysv64" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "sysv64" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "sysv64" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "sysv64" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "sysv64" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "sysv64" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "sysv64" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "sysv64" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl Zeroable for Option<extern "sysv64-unwind" fn()> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T> Zeroable for Option<extern "sysv64-unwind" fn(T)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1> Zeroable for Option<extern "sysv64-unwind" fn(T0, T1)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2> Zeroable for Option<extern "sysv64-unwind" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "sysv64-unwind" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "sysv64-unwind" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "sysv64-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "sysv64-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "sysv64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "sysv64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "sysv64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "sysv64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "sysv64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
unsafe impl Zeroable for Option<extern "system" fn()> {}
unsafe impl<T> Zeroable for Option<extern "system" fn(T)> {}
unsafe impl<T0, T1> Zeroable for Option<extern "system" fn(T0, T1)> {}
unsafe impl<T0, T1, T2> Zeroable for Option<extern "system" fn(T0, T1, T2)> {}
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "system" fn(T0, T1, T2, T3)> {}
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "system" fn(T0, T1, T2, T3, T4)> {}
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "system" fn(T0, T1, T2, T3, T4, T5)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "system" fn(T0, T1, T2, T3, T4, T5, T6)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "system" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "system" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "system" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "system" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "system" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
unsafe impl Zeroable for Option<extern "system-unwind" fn()> {}
unsafe impl<T> Zeroable for Option<extern "system-unwind" fn(T)> {}
unsafe impl<T0, T1> Zeroable for Option<extern "system-unwind" fn(T0, T1)> {}
unsafe impl<T0, T1, T2> Zeroable for Option<extern "system-unwind" fn(T0, T1, T2)> {}
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "system-unwind" fn(T0, T1, T2, T3)> {}
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "system-unwind" fn(T0, T1, T2, T3, T4)> {}
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "system-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "system-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "system-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "system-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "system-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "system-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "system-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86")]
unsafe impl Zeroable for Option<extern "thiscall" fn()> {}
#[cfg(target_arch = "x86")]
unsafe impl<T> Zeroable for Option<extern "thiscall" fn(T)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1> Zeroable for Option<extern "thiscall" fn(T0, T1)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2> Zeroable for Option<extern "thiscall" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "thiscall" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "thiscall" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "thiscall" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "thiscall" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "thiscall" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "thiscall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "thiscall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "thiscall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "thiscall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86")]
unsafe impl Zeroable for Option<extern "thiscall-unwind" fn()> {}
#[cfg(target_arch = "x86")]
unsafe impl<T> Zeroable for Option<extern "thiscall-unwind" fn(T)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1> Zeroable for Option<extern "thiscall-unwind" fn(T0, T1)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2> Zeroable for Option<extern "thiscall-unwind" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "thiscall-unwind" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "thiscall-unwind" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "thiscall-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "thiscall-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "thiscall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "thiscall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "thiscall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "thiscall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "thiscall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl Zeroable for Option<extern "win64" fn()> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T> Zeroable for Option<extern "win64" fn(T)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1> Zeroable for Option<extern "win64" fn(T0, T1)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2> Zeroable for Option<extern "win64" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "win64" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "win64" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "win64" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "win64" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "win64" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "win64" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "win64" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "win64" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "win64" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl Zeroable for Option<extern "win64-unwind" fn()> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T> Zeroable for Option<extern "win64-unwind" fn(T)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1> Zeroable for Option<extern "win64-unwind" fn(T0, T1)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2> Zeroable for Option<extern "win64-unwind" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<extern "win64-unwind" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<extern "win64-unwind" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<extern "win64-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<extern "win64-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<extern "win64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<extern "win64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<extern "win64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<extern "win64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<extern "win64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
unsafe impl Zeroable for Option<unsafe fn()> {}
unsafe impl<T> Zeroable for Option<unsafe fn(T)> {}
unsafe impl<T0, T1> Zeroable for Option<unsafe fn(T0, T1)> {}
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe fn(T0, T1, T2)> {}
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe fn(T0, T1, T2, T3)> {}
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe fn(T0, T1, T2, T3, T4)> {}
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe fn(T0, T1, T2, T3, T4, T5)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe fn(T0, T1, T2, T3, T4, T5, T6)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "arm")]
unsafe impl Zeroable for Option<unsafe extern "aapcs" fn()> {}
#[cfg(target_arch = "arm")]
unsafe impl<T> Zeroable for Option<unsafe extern "aapcs" fn(T)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "aapcs" fn(T0, T1)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "aapcs" fn(T0, T1, T2)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "aapcs" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "aapcs" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "aapcs" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "aapcs" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "aapcs" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "aapcs" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "aapcs" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "aapcs" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "aapcs" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "arm")]
unsafe impl Zeroable for Option<unsafe extern "aapcs-unwind" fn()> {}
#[cfg(target_arch = "arm")]
unsafe impl<T> Zeroable for Option<unsafe extern "aapcs-unwind" fn(T)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "aapcs-unwind" fn(T0, T1)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "aapcs-unwind" fn(T0, T1, T2)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "aapcs-unwind" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "aapcs-unwind" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "aapcs-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "aapcs-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "aapcs-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "aapcs-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "aapcs-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "aapcs-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "arm")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "aapcs-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
unsafe impl Zeroable for Option<unsafe extern "C" fn()> {}
unsafe impl<T> Zeroable for Option<unsafe extern "C" fn(T)> {}
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "C" fn(T0, T1)> {}
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "C" fn(T0, T1, T2)> {}
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "C" fn(T0, T1, T2, T3)> {}
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "C" fn(T0, T1, T2, T3, T4)> {}
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "C" fn(T0, T1, T2, T3, T4, T5)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "C" fn(T0, T1, T2, T3, T4, T5, T6)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "C" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "C" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "C" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "C" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "C" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
unsafe impl Zeroable for Option<unsafe extern "C-unwind" fn()> {}
unsafe impl<T> Zeroable for Option<unsafe extern "C-unwind" fn(T)> {}
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "C-unwind" fn(T0, T1)> {}
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "C-unwind" fn(T0, T1, T2)> {}
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "C-unwind" fn(T0, T1, T2, T3)> {}
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "C-unwind" fn(T0, T1, T2, T3, T4)> {}
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "C-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "C-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "C-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "C-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "C-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "C-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "C-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86")]
unsafe impl Zeroable for Option<unsafe extern "cdecl" fn()> {}
#[cfg(target_arch = "x86")]
unsafe impl<T> Zeroable for Option<unsafe extern "cdecl" fn(T)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "cdecl" fn(T0, T1)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "cdecl" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "cdecl" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "cdecl" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "cdecl" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "cdecl" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "cdecl" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "cdecl" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "cdecl" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "cdecl" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "cdecl" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86")]
unsafe impl Zeroable for Option<unsafe extern "cdecl-unwind" fn()> {}
#[cfg(target_arch = "x86")]
unsafe impl<T> Zeroable for Option<unsafe extern "cdecl-unwind" fn(T)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "cdecl-unwind" fn(T0, T1)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "cdecl-unwind" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "cdecl-unwind" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "cdecl-unwind" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "cdecl-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "cdecl-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "cdecl-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "cdecl-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "cdecl-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "cdecl-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "cdecl-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl Zeroable for Option<unsafe extern "efiapi" fn()> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T> Zeroable for Option<unsafe extern "efiapi" fn(T)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "efiapi" fn(T0, T1)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "efiapi" fn(T0, T1, T2)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "efiapi" fn(T0, T1, T2, T3)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "efiapi" fn(T0, T1, T2, T3, T4)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "efiapi" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "efiapi" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "efiapi" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "efiapi" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "efiapi" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "efiapi" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm", target_arch = "x86", target_arch = "x86_64"))]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "efiapi" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86")]
unsafe impl Zeroable for Option<unsafe extern "fastcall" fn()> {}
#[cfg(target_arch = "x86")]
unsafe impl<T> Zeroable for Option<unsafe extern "fastcall" fn(T)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "fastcall" fn(T0, T1)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "fastcall" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "fastcall" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "fastcall" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "fastcall" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "fastcall" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "fastcall" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "fastcall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "fastcall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "fastcall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "fastcall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86")]
unsafe impl Zeroable for Option<unsafe extern "fastcall-unwind" fn()> {}
#[cfg(target_arch = "x86")]
unsafe impl<T> Zeroable for Option<unsafe extern "fastcall-unwind" fn(T)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "fastcall-unwind" fn(T0, T1)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "fastcall-unwind" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "fastcall-unwind" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "fastcall-unwind" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "fastcall-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "fastcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "fastcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "fastcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "fastcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "fastcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "fastcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86")]
unsafe impl Zeroable for Option<unsafe extern "stdcall" fn()> {}
#[cfg(target_arch = "x86")]
unsafe impl<T> Zeroable for Option<unsafe extern "stdcall" fn(T)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "stdcall" fn(T0, T1)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "stdcall" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "stdcall" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "stdcall" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "stdcall" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "stdcall" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "stdcall" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "stdcall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "stdcall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "stdcall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "stdcall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86")]
unsafe impl Zeroable for Option<unsafe extern "stdcall-unwind" fn()> {}
#[cfg(target_arch = "x86")]
unsafe impl<T> Zeroable for Option<unsafe extern "stdcall-unwind" fn(T)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "stdcall-unwind" fn(T0, T1)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "stdcall-unwind" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "stdcall-unwind" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "stdcall-unwind" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "stdcall-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "stdcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "stdcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "stdcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "stdcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "stdcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "stdcall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl Zeroable for Option<unsafe extern "sysv64" fn()> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T> Zeroable for Option<unsafe extern "sysv64" fn(T)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "sysv64" fn(T0, T1)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "sysv64" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "sysv64" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "sysv64" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "sysv64" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "sysv64" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "sysv64" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "sysv64" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "sysv64" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "sysv64" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "sysv64" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl Zeroable for Option<unsafe extern "sysv64-unwind" fn()> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T> Zeroable for Option<unsafe extern "sysv64-unwind" fn(T)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "sysv64-unwind" fn(T0, T1)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "sysv64-unwind" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "sysv64-unwind" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "sysv64-unwind" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "sysv64-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "sysv64-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "sysv64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "sysv64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "sysv64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "sysv64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "sysv64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
unsafe impl Zeroable for Option<unsafe extern "system" fn()> {}
unsafe impl<T> Zeroable for Option<unsafe extern "system" fn(T)> {}
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "system" fn(T0, T1)> {}
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "system" fn(T0, T1, T2)> {}
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "system" fn(T0, T1, T2, T3)> {}
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "system" fn(T0, T1, T2, T3, T4)> {}
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "system" fn(T0, T1, T2, T3, T4, T5)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "system" fn(T0, T1, T2, T3, T4, T5, T6)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "system" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "system" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "system" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "system" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "system" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
unsafe impl Zeroable for Option<unsafe extern "system-unwind" fn()> {}
unsafe impl<T> Zeroable for Option<unsafe extern "system-unwind" fn(T)> {}
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "system-unwind" fn(T0, T1)> {}
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "system-unwind" fn(T0, T1, T2)> {}
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "system-unwind" fn(T0, T1, T2, T3)> {}
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "system-unwind" fn(T0, T1, T2, T3, T4)> {}
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "system-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "system-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "system-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "system-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "system-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "system-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "system-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86")]
unsafe impl Zeroable for Option<unsafe extern "thiscall" fn()> {}
#[cfg(target_arch = "x86")]
unsafe impl<T> Zeroable for Option<unsafe extern "thiscall" fn(T)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "thiscall" fn(T0, T1)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "thiscall" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "thiscall" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "thiscall" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "thiscall" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "thiscall" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "thiscall" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "thiscall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "thiscall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "thiscall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "thiscall" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86")]
unsafe impl Zeroable for Option<unsafe extern "thiscall-unwind" fn()> {}
#[cfg(target_arch = "x86")]
unsafe impl<T> Zeroable for Option<unsafe extern "thiscall-unwind" fn(T)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "thiscall-unwind" fn(T0, T1)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "thiscall-unwind" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "thiscall-unwind" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "thiscall-unwind" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "thiscall-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "thiscall-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "thiscall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "thiscall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "thiscall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "thiscall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "thiscall-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl Zeroable for Option<unsafe extern "win64" fn()> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T> Zeroable for Option<unsafe extern "win64" fn(T)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "win64" fn(T0, T1)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "win64" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "win64" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "win64" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "win64" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "win64" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "win64" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "win64" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "win64" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "win64" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "win64" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl Zeroable for Option<unsafe extern "win64-unwind" fn()> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T> Zeroable for Option<unsafe extern "win64-unwind" fn(T)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1> Zeroable for Option<unsafe extern "win64-unwind" fn(T0, T1)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2> Zeroable for Option<unsafe extern "win64-unwind" fn(T0, T1, T2)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3> Zeroable for Option<unsafe extern "win64-unwind" fn(T0, T1, T2, T3)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for Option<unsafe extern "win64-unwind" fn(T0, T1, T2, T3, T4)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for Option<unsafe extern "win64-unwind" fn(T0, T1, T2, T3, T4, T5)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for Option<unsafe extern "win64-unwind" fn(T0, T1, T2, T3, T4, T5, T6)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for Option<unsafe extern "win64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for Option<unsafe extern "win64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for Option<unsafe extern "win64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for Option<unsafe extern "win64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)> {}
#[cfg(target_arch = "x86_64")]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for Option<unsafe extern "win64-unwind" fn(T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)> {}
unsafe impl<T> Zeroable for Option<NonNull<T>> {}
unsafe impl Zeroable for Option<NonZero<i128>> {}
unsafe impl Zeroable for Option<NonZero<i16>> {}
unsafe impl Zeroable for Option<NonZero<i32>> {}
unsafe impl Zeroable for Option<NonZero<i64>> {}
unsafe impl Zeroable for Option<NonZero<i8>> {}
unsafe impl Zeroable for Option<NonZero<isize>> {}
unsafe impl Zeroable for Option<NonZero<u128>> {}
unsafe impl Zeroable for Option<NonZero<u16>> {}
unsafe impl Zeroable for Option<NonZero<u32>> {}
unsafe impl Zeroable for Option<NonZero<u64>> {}
unsafe impl Zeroable for Option<NonZero<u8>> {}
unsafe impl Zeroable for Option<NonZero<usize>> {}
unsafe impl<T: ?Sized> Zeroable for PhantomData<T> {}
unsafe impl Zeroable for PhantomPinned {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly16x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly16x4x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly16x4x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly16x4x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly16x8_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly16x8x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly16x8x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly16x8x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly64x1_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly64x1x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly64x1x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly64x1x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly64x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly64x2x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly64x2x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly64x2x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly8x16_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly8x16x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly8x16x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly8x16x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly8x8_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly8x8x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly8x8x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::poly8x8x4_t {}
unsafe impl<T: Zeroable> Zeroable for Reverse<T> {}
unsafe impl<T> Zeroable for *const T {}
unsafe impl<T> Zeroable for *mut T {}
unsafe impl<T: Zeroable> Zeroable for Saturating<T> {}
#[cfg(feature = "simd")]
unsafe impl<T: SimdElement + Zeroable, const N: usize> Zeroable for Simd<T, N> {}
unsafe impl<T: Zeroable> Zeroable for [T] {}
unsafe impl Zeroable for str {}
#[cfg_attr(feature = "unstable_docs", doc(fake_variadic))]
unsafe impl<T: Zeroable> Zeroable for (T,) {}
#[doc(hidden)]
unsafe impl<T0, T1> Zeroable for (T0, T1)
where
T0: Zeroable,
T1: Zeroable,
{}
#[doc(hidden)]
unsafe impl<T0, T1, T2> Zeroable for (T0, T1, T2)
where
T0: Zeroable,
T1: Zeroable,
T2: Zeroable,
{}
#[doc(hidden)]
unsafe impl<T0, T1, T2, T3> Zeroable for (T0, T1, T2, T3)
where
T0: Zeroable,
T1: Zeroable,
T2: Zeroable,
T3: Zeroable,
{}
#[doc(hidden)]
unsafe impl<T0, T1, T2, T3, T4> Zeroable for (T0, T1, T2, T3, T4)
where
T0: Zeroable,
T1: Zeroable,
T2: Zeroable,
T3: Zeroable,
T4: Zeroable,
{}
#[doc(hidden)]
unsafe impl<T0, T1, T2, T3, T4, T5> Zeroable for (T0, T1, T2, T3, T4, T5)
where
T0: Zeroable,
T1: Zeroable,
T2: Zeroable,
T3: Zeroable,
T4: Zeroable,
T5: Zeroable,
{}
#[doc(hidden)]
unsafe impl<T0, T1, T2, T3, T4, T5, T6> Zeroable for (T0, T1, T2, T3, T4, T5, T6)
where
T0: Zeroable,
T1: Zeroable,
T2: Zeroable,
T3: Zeroable,
T4: Zeroable,
T5: Zeroable,
T6: Zeroable,
{}
#[doc(hidden)]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7> Zeroable for (T0, T1, T2, T3, T4, T5, T6, T7)
where
T0: Zeroable,
T1: Zeroable,
T2: Zeroable,
T3: Zeroable,
T4: Zeroable,
T5: Zeroable,
T6: Zeroable,
T7: Zeroable,
{}
#[doc(hidden)]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8> Zeroable for (T0, T1, T2, T3, T4, T5, T6, T7, T8)
where
T0: Zeroable,
T1: Zeroable,
T2: Zeroable,
T3: Zeroable,
T4: Zeroable,
T5: Zeroable,
T6: Zeroable,
T7: Zeroable,
T8: Zeroable,
{}
#[doc(hidden)]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> Zeroable for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9)
where
T0: Zeroable,
T1: Zeroable,
T2: Zeroable,
T3: Zeroable,
T4: Zeroable,
T5: Zeroable,
T6: Zeroable,
T7: Zeroable,
T8: Zeroable,
T9: Zeroable,
{}
#[doc(hidden)]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Zeroable for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10)
where
T0: Zeroable,
T1: Zeroable,
T2: Zeroable,
T3: Zeroable,
T4: Zeroable,
T5: Zeroable,
T6: Zeroable,
T7: Zeroable,
T8: Zeroable,
T9: Zeroable,
T10: Zeroable,
{}
#[doc(hidden)]
unsafe impl<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11> Zeroable for (T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11)
where
T0: Zeroable,
T1: Zeroable,
T2: Zeroable,
T3: Zeroable,
T4: Zeroable,
T5: Zeroable,
T6: Zeroable,
T7: Zeroable,
T8: Zeroable,
T9: Zeroable,
T10: Zeroable,
T11: Zeroable,
{}
unsafe impl Zeroable for u128 {}
unsafe impl Zeroable for u16 {}
unsafe impl Zeroable for u32 {}
unsafe impl Zeroable for u64 {}
unsafe impl Zeroable for u8 {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint16x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint16x4x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint16x4x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint16x4x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint16x8_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint16x8x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint16x8x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint16x8x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint32x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint32x2x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint32x2x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint32x2x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint32x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint32x4x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint32x4x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint32x4x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint64x1_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint64x1x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint64x1x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint64x1x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint64x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint64x2x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint64x2x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint64x2x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint8x16_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint8x16x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint8x16x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint8x16x4_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint8x8_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint8x8x2_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint8x8x3_t {}
#[cfg(any(target_arch = "aarch64", target_arch = "arm64ec", target_feature = "v7"))]
unsafe impl Zeroable for arch::uint8x8x4_t {}
unsafe impl Zeroable for () {}
unsafe impl<T: Zeroable> Zeroable for UnsafeCell<T> {}
unsafe impl Zeroable for usize {}
#[cfg(target_arch = "wasm32")]
unsafe impl Zeroable for arch::v128 {}
unsafe impl<T: Zeroable> Zeroable for Wrapping<T> {}