1pub unsafe trait Zeroable: Sized {}
30unsafe impl Zeroable for () {}
31unsafe impl Zeroable for bool {}
32unsafe impl Zeroable for char {}
33unsafe impl Zeroable for u8 {}
34unsafe impl Zeroable for i8 {}
35unsafe impl Zeroable for u16 {}
36unsafe impl Zeroable for i16 {}
37unsafe impl Zeroable for u32 {}
38unsafe impl Zeroable for i32 {}
39unsafe impl Zeroable for u64 {}
40unsafe impl Zeroable for i64 {}
41unsafe impl Zeroable for usize {}
42unsafe impl Zeroable for isize {}
43unsafe impl Zeroable for u128 {}
44unsafe impl Zeroable for i128 {}
45unsafe impl Zeroable for f32 {}
46unsafe impl Zeroable for f64 {}
47unsafe impl<T: Zeroable> Zeroable for core::num::Wrapping<T> {}
48unsafe impl<T: Zeroable> Zeroable for core::cmp::Reverse<T> {}
49unsafe impl<T: Zeroable> Zeroable for core::num::Saturating<T> {}
50
51unsafe impl<T> Zeroable for *mut T {}
56unsafe impl<T> Zeroable for *const T {}
57unsafe impl<T> Zeroable for *mut [T] {}
58unsafe impl<T> Zeroable for *const [T] {}
59unsafe impl Zeroable for *mut str {}
60unsafe impl Zeroable for *const str {}
61
62unsafe impl<T: ?Sized> Zeroable for core::marker::PhantomData<T> {}
63unsafe impl Zeroable for core::marker::PhantomPinned {}
64unsafe impl<T: Zeroable> Zeroable for core::mem::ManuallyDrop<T> {}
65unsafe impl<T: Zeroable> Zeroable for core::cell::UnsafeCell<T> {}
66unsafe impl<T: Zeroable> Zeroable for core::cell::Cell<T> {}
67
68unsafe impl<A: Zeroable> Zeroable for (A,) {}
69unsafe impl<A: Zeroable, B: Zeroable> Zeroable for (A, B) {}
70unsafe impl<A: Zeroable, B: Zeroable, C: Zeroable> Zeroable for (A, B, C) {}
71unsafe impl<A: Zeroable, B: Zeroable, C: Zeroable, D: Zeroable> Zeroable for (A, B, C, D) {}
72unsafe impl<A: Zeroable, B: Zeroable, C: Zeroable, D: Zeroable, E: Zeroable> Zeroable
73 for (A, B, C, D, E)
74{
75}
76unsafe impl<A: Zeroable, B: Zeroable, C: Zeroable, D: Zeroable, E: Zeroable, F: Zeroable> Zeroable
77 for (A, B, C, D, E, F)
78{
79}
80unsafe impl<
81 A: Zeroable,
82 B: Zeroable,
83 C: Zeroable,
84 D: Zeroable,
85 E: Zeroable,
86 F: Zeroable,
87 G: Zeroable,
88> Zeroable for (A, B, C, D, E, F, G)
89{
90}
91unsafe impl<
92 A: Zeroable,
93 B: Zeroable,
94 C: Zeroable,
95 D: Zeroable,
96 E: Zeroable,
97 F: Zeroable,
98 G: Zeroable,
99 H: Zeroable,
100> Zeroable for (A, B, C, D, E, F, G, H)
101{
102}
103
104unsafe impl<T, const N: usize> Zeroable for [T; N] where T: Zeroable {}