1#![allow(clippy::transmute_ptr_to_ptr)]
8
9use crate::ZeroFrom;
10
11macro_rules! impl_copy_type {
12 ($ty:ident) => {
13 impl<'a> ZeroFrom<'a, $ty> for $ty {
14 #[inline]
15 fn zero_from(this: &'a Self) -> Self {
16 *this
18 }
19 }
20 };
21}
22
23impl<'a> ZeroFrom<'a, u8> for u8 {
#[inline]
fn zero_from(this: &'a Self) -> Self { *this }
}impl_copy_type!(u8);
24impl<'a> ZeroFrom<'a, u16> for u16 {
#[inline]
fn zero_from(this: &'a Self) -> Self { *this }
}impl_copy_type!(u16);
25impl<'a> ZeroFrom<'a, u32> for u32 {
#[inline]
fn zero_from(this: &'a Self) -> Self { *this }
}impl_copy_type!(u32);
26impl<'a> ZeroFrom<'a, u64> for u64 {
#[inline]
fn zero_from(this: &'a Self) -> Self { *this }
}impl_copy_type!(u64);
27impl<'a> ZeroFrom<'a, u128> for u128 {
#[inline]
fn zero_from(this: &'a Self) -> Self { *this }
}impl_copy_type!(u128);
28impl<'a> ZeroFrom<'a, usize> for usize {
#[inline]
fn zero_from(this: &'a Self) -> Self { *this }
}impl_copy_type!(usize);
29impl<'a> ZeroFrom<'a, i8> for i8 {
#[inline]
fn zero_from(this: &'a Self) -> Self { *this }
}impl_copy_type!(i8);
30impl<'a> ZeroFrom<'a, i16> for i16 {
#[inline]
fn zero_from(this: &'a Self) -> Self { *this }
}impl_copy_type!(i16);
31impl<'a> ZeroFrom<'a, i32> for i32 {
#[inline]
fn zero_from(this: &'a Self) -> Self { *this }
}impl_copy_type!(i32);
32impl<'a> ZeroFrom<'a, i64> for i64 {
#[inline]
fn zero_from(this: &'a Self) -> Self { *this }
}impl_copy_type!(i64);
33impl<'a> ZeroFrom<'a, i128> for i128 {
#[inline]
fn zero_from(this: &'a Self) -> Self { *this }
}impl_copy_type!(i128);
34impl<'a> ZeroFrom<'a, isize> for isize {
#[inline]
fn zero_from(this: &'a Self) -> Self { *this }
}impl_copy_type!(isize);
35impl<'a> ZeroFrom<'a, char> for char {
#[inline]
fn zero_from(this: &'a Self) -> Self { *this }
}impl_copy_type!(char);
36impl<'a> ZeroFrom<'a, bool> for bool {
#[inline]
fn zero_from(this: &'a Self) -> Self { *this }
}impl_copy_type!(bool);
37
38macro_rules! array_zf_impl {
41 ($n:expr; $($i:expr),+) => {
42 impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; $n]> for [T; $n] {
43 fn zero_from(this: &'a [C; $n]) -> Self {
44 [
45 $(
46 <T as ZeroFrom<C>>::zero_from(&this[$i])
47 ),+
48
49 ]
50 }
51 }
52 }
53}
54
55impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 1]> for [T; 1] {
fn zero_from(this: &'a [C; 1]) -> Self {
[<T as ZeroFrom<C>>::zero_from(&this[0])]
}
}array_zf_impl!(1; 0);
56impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 2]> for [T; 2] {
fn zero_from(this: &'a [C; 2]) -> Self {
[<T as ZeroFrom<C>>::zero_from(&this[0]),
<T as ZeroFrom<C>>::zero_from(&this[1])]
}
}array_zf_impl!(2; 0, 1);
57impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 3]> for [T; 3] {
fn zero_from(this: &'a [C; 3]) -> Self {
[<T as ZeroFrom<C>>::zero_from(&this[0]),
<T as ZeroFrom<C>>::zero_from(&this[1]),
<T as ZeroFrom<C>>::zero_from(&this[2])]
}
}array_zf_impl!(3; 0, 1, 2);
58impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 4]> for [T; 4] {
fn zero_from(this: &'a [C; 4]) -> Self {
[<T as ZeroFrom<C>>::zero_from(&this[0]),
<T as ZeroFrom<C>>::zero_from(&this[1]),
<T as ZeroFrom<C>>::zero_from(&this[2]),
<T as ZeroFrom<C>>::zero_from(&this[3])]
}
}array_zf_impl!(4; 0, 1, 2, 3);
59impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 5]> for [T; 5] {
fn zero_from(this: &'a [C; 5]) -> Self {
[<T as ZeroFrom<C>>::zero_from(&this[0]),
<T as ZeroFrom<C>>::zero_from(&this[1]),
<T as ZeroFrom<C>>::zero_from(&this[2]),
<T as ZeroFrom<C>>::zero_from(&this[3]),
<T as ZeroFrom<C>>::zero_from(&this[4])]
}
}array_zf_impl!(5; 0, 1, 2, 3, 4);
60impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 6]> for [T; 6] {
fn zero_from(this: &'a [C; 6]) -> Self {
[<T as ZeroFrom<C>>::zero_from(&this[0]),
<T as ZeroFrom<C>>::zero_from(&this[1]),
<T as ZeroFrom<C>>::zero_from(&this[2]),
<T as ZeroFrom<C>>::zero_from(&this[3]),
<T as ZeroFrom<C>>::zero_from(&this[4]),
<T as ZeroFrom<C>>::zero_from(&this[5])]
}
}array_zf_impl!(6; 0, 1, 2, 3, 4, 5);
61impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 7]> for [T; 7] {
fn zero_from(this: &'a [C; 7]) -> Self {
[<T as ZeroFrom<C>>::zero_from(&this[0]),
<T as ZeroFrom<C>>::zero_from(&this[1]),
<T as ZeroFrom<C>>::zero_from(&this[2]),
<T as ZeroFrom<C>>::zero_from(&this[3]),
<T as ZeroFrom<C>>::zero_from(&this[4]),
<T as ZeroFrom<C>>::zero_from(&this[5]),
<T as ZeroFrom<C>>::zero_from(&this[6])]
}
}array_zf_impl!(7; 0, 1, 2, 3, 4, 5, 6);
62impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 8]> for [T; 8] {
fn zero_from(this: &'a [C; 8]) -> Self {
[<T as ZeroFrom<C>>::zero_from(&this[0]),
<T as ZeroFrom<C>>::zero_from(&this[1]),
<T as ZeroFrom<C>>::zero_from(&this[2]),
<T as ZeroFrom<C>>::zero_from(&this[3]),
<T as ZeroFrom<C>>::zero_from(&this[4]),
<T as ZeroFrom<C>>::zero_from(&this[5]),
<T as ZeroFrom<C>>::zero_from(&this[6]),
<T as ZeroFrom<C>>::zero_from(&this[7])]
}
}array_zf_impl!(8; 0, 1, 2, 3, 4, 5, 6, 7);
63impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 9]> for [T; 9] {
fn zero_from(this: &'a [C; 9]) -> Self {
[<T as ZeroFrom<C>>::zero_from(&this[0]),
<T as ZeroFrom<C>>::zero_from(&this[1]),
<T as ZeroFrom<C>>::zero_from(&this[2]),
<T as ZeroFrom<C>>::zero_from(&this[3]),
<T as ZeroFrom<C>>::zero_from(&this[4]),
<T as ZeroFrom<C>>::zero_from(&this[5]),
<T as ZeroFrom<C>>::zero_from(&this[6]),
<T as ZeroFrom<C>>::zero_from(&this[7]),
<T as ZeroFrom<C>>::zero_from(&this[8])]
}
}array_zf_impl!(9; 0, 1, 2, 3, 4, 5, 6, 7, 8);
64impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 10]> for [T; 10] {
fn zero_from(this: &'a [C; 10]) -> Self {
[<T as ZeroFrom<C>>::zero_from(&this[0]),
<T as ZeroFrom<C>>::zero_from(&this[1]),
<T as ZeroFrom<C>>::zero_from(&this[2]),
<T as ZeroFrom<C>>::zero_from(&this[3]),
<T as ZeroFrom<C>>::zero_from(&this[4]),
<T as ZeroFrom<C>>::zero_from(&this[5]),
<T as ZeroFrom<C>>::zero_from(&this[6]),
<T as ZeroFrom<C>>::zero_from(&this[7]),
<T as ZeroFrom<C>>::zero_from(&this[8]),
<T as ZeroFrom<C>>::zero_from(&this[9])]
}
}array_zf_impl!(10; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9);
65impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 11]> for [T; 11] {
fn zero_from(this: &'a [C; 11]) -> Self {
[<T as ZeroFrom<C>>::zero_from(&this[0]),
<T as ZeroFrom<C>>::zero_from(&this[1]),
<T as ZeroFrom<C>>::zero_from(&this[2]),
<T as ZeroFrom<C>>::zero_from(&this[3]),
<T as ZeroFrom<C>>::zero_from(&this[4]),
<T as ZeroFrom<C>>::zero_from(&this[5]),
<T as ZeroFrom<C>>::zero_from(&this[6]),
<T as ZeroFrom<C>>::zero_from(&this[7]),
<T as ZeroFrom<C>>::zero_from(&this[8]),
<T as ZeroFrom<C>>::zero_from(&this[9]),
<T as ZeroFrom<C>>::zero_from(&this[10])]
}
}array_zf_impl!(11; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
66impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 12]> for [T; 12] {
fn zero_from(this: &'a [C; 12]) -> Self {
[<T as ZeroFrom<C>>::zero_from(&this[0]),
<T as ZeroFrom<C>>::zero_from(&this[1]),
<T as ZeroFrom<C>>::zero_from(&this[2]),
<T as ZeroFrom<C>>::zero_from(&this[3]),
<T as ZeroFrom<C>>::zero_from(&this[4]),
<T as ZeroFrom<C>>::zero_from(&this[5]),
<T as ZeroFrom<C>>::zero_from(&this[6]),
<T as ZeroFrom<C>>::zero_from(&this[7]),
<T as ZeroFrom<C>>::zero_from(&this[8]),
<T as ZeroFrom<C>>::zero_from(&this[9]),
<T as ZeroFrom<C>>::zero_from(&this[10]),
<T as ZeroFrom<C>>::zero_from(&this[11])]
}
}array_zf_impl!(12; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11);
67impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 13]> for [T; 13] {
fn zero_from(this: &'a [C; 13]) -> Self {
[<T as ZeroFrom<C>>::zero_from(&this[0]),
<T as ZeroFrom<C>>::zero_from(&this[1]),
<T as ZeroFrom<C>>::zero_from(&this[2]),
<T as ZeroFrom<C>>::zero_from(&this[3]),
<T as ZeroFrom<C>>::zero_from(&this[4]),
<T as ZeroFrom<C>>::zero_from(&this[5]),
<T as ZeroFrom<C>>::zero_from(&this[6]),
<T as ZeroFrom<C>>::zero_from(&this[7]),
<T as ZeroFrom<C>>::zero_from(&this[8]),
<T as ZeroFrom<C>>::zero_from(&this[9]),
<T as ZeroFrom<C>>::zero_from(&this[10]),
<T as ZeroFrom<C>>::zero_from(&this[11]),
<T as ZeroFrom<C>>::zero_from(&this[12])]
}
}array_zf_impl!(13; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12);
68impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 14]> for [T; 14] {
fn zero_from(this: &'a [C; 14]) -> Self {
[<T as ZeroFrom<C>>::zero_from(&this[0]),
<T as ZeroFrom<C>>::zero_from(&this[1]),
<T as ZeroFrom<C>>::zero_from(&this[2]),
<T as ZeroFrom<C>>::zero_from(&this[3]),
<T as ZeroFrom<C>>::zero_from(&this[4]),
<T as ZeroFrom<C>>::zero_from(&this[5]),
<T as ZeroFrom<C>>::zero_from(&this[6]),
<T as ZeroFrom<C>>::zero_from(&this[7]),
<T as ZeroFrom<C>>::zero_from(&this[8]),
<T as ZeroFrom<C>>::zero_from(&this[9]),
<T as ZeroFrom<C>>::zero_from(&this[10]),
<T as ZeroFrom<C>>::zero_from(&this[11]),
<T as ZeroFrom<C>>::zero_from(&this[12]),
<T as ZeroFrom<C>>::zero_from(&this[13])]
}
}array_zf_impl!(14; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13);
69impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 15]> for [T; 15] {
fn zero_from(this: &'a [C; 15]) -> Self {
[<T as ZeroFrom<C>>::zero_from(&this[0]),
<T as ZeroFrom<C>>::zero_from(&this[1]),
<T as ZeroFrom<C>>::zero_from(&this[2]),
<T as ZeroFrom<C>>::zero_from(&this[3]),
<T as ZeroFrom<C>>::zero_from(&this[4]),
<T as ZeroFrom<C>>::zero_from(&this[5]),
<T as ZeroFrom<C>>::zero_from(&this[6]),
<T as ZeroFrom<C>>::zero_from(&this[7]),
<T as ZeroFrom<C>>::zero_from(&this[8]),
<T as ZeroFrom<C>>::zero_from(&this[9]),
<T as ZeroFrom<C>>::zero_from(&this[10]),
<T as ZeroFrom<C>>::zero_from(&this[11]),
<T as ZeroFrom<C>>::zero_from(&this[12]),
<T as ZeroFrom<C>>::zero_from(&this[13]),
<T as ZeroFrom<C>>::zero_from(&this[14])]
}
}array_zf_impl!(15; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14);
70impl<'a, C, T: ZeroFrom<'a, C>> ZeroFrom<'a, [C; 16]> for [T; 16] {
fn zero_from(this: &'a [C; 16]) -> Self {
[<T as ZeroFrom<C>>::zero_from(&this[0]),
<T as ZeroFrom<C>>::zero_from(&this[1]),
<T as ZeroFrom<C>>::zero_from(&this[2]),
<T as ZeroFrom<C>>::zero_from(&this[3]),
<T as ZeroFrom<C>>::zero_from(&this[4]),
<T as ZeroFrom<C>>::zero_from(&this[5]),
<T as ZeroFrom<C>>::zero_from(&this[6]),
<T as ZeroFrom<C>>::zero_from(&this[7]),
<T as ZeroFrom<C>>::zero_from(&this[8]),
<T as ZeroFrom<C>>::zero_from(&this[9]),
<T as ZeroFrom<C>>::zero_from(&this[10]),
<T as ZeroFrom<C>>::zero_from(&this[11]),
<T as ZeroFrom<C>>::zero_from(&this[12]),
<T as ZeroFrom<C>>::zero_from(&this[13]),
<T as ZeroFrom<C>>::zero_from(&this[14]),
<T as ZeroFrom<C>>::zero_from(&this[15])]
}
}array_zf_impl!(16; 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15);
71
72macro_rules! tuple_zf_impl {
73 ($(($c:ident, $t:ident, $i:tt)),+) => {
74 impl<'zf, $($c, $t: ZeroFrom<'zf, $c>),+> ZeroFrom<'zf, ($($c),+)>
75 for ($($t),+)
76 {
77 fn zero_from(other: &'zf ($($c),+)) -> Self {
78 (
79 $(<$t as ZeroFrom<$c>>::zero_from(&other.$i)),+
80 )
81 }
82 }
83 };
84}
85
86impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>>
ZeroFrom<'zf, (C1, C2)> for (T1, T2) {
fn zero_from(other: &'zf (C1, C2)) -> Self {
(<T1 as ZeroFrom<C1>>::zero_from(&other.0),
<T2 as ZeroFrom<C2>>::zero_from(&other.1))
}
}tuple_zf_impl!((C1, T1, 0), (C2, T2, 1));
87impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>, C3,
T3: ZeroFrom<'zf, C3>> ZeroFrom<'zf, (C1, C2, C3)> for (T1, T2, T3) {
fn zero_from(other: &'zf (C1, C2, C3)) -> Self {
(<T1 as ZeroFrom<C1>>::zero_from(&other.0),
<T2 as ZeroFrom<C2>>::zero_from(&other.1),
<T3 as ZeroFrom<C3>>::zero_from(&other.2))
}
}tuple_zf_impl!((C1, T1, 0), (C2, T2, 1), (C3, T3, 2));
88impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>, C3,
T3: ZeroFrom<'zf, C3>, C4, T4: ZeroFrom<'zf, C4>>
ZeroFrom<'zf, (C1, C2, C3, C4)> for (T1, T2, T3, T4) {
fn zero_from(other: &'zf (C1, C2, C3, C4)) -> Self {
(<T1 as ZeroFrom<C1>>::zero_from(&other.0),
<T2 as ZeroFrom<C2>>::zero_from(&other.1),
<T3 as ZeroFrom<C3>>::zero_from(&other.2),
<T4 as ZeroFrom<C4>>::zero_from(&other.3))
}
}tuple_zf_impl!((C1, T1, 0), (C2, T2, 1), (C3, T3, 2), (C4, T4, 3));
89impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>, C3,
T3: ZeroFrom<'zf, C3>, C4, T4: ZeroFrom<'zf, C4>, C5,
T5: ZeroFrom<'zf, C5>> ZeroFrom<'zf, (C1, C2, C3, C4, C5)> for
(T1, T2, T3, T4, T5) {
fn zero_from(other: &'zf (C1, C2, C3, C4, C5)) -> Self {
(<T1 as ZeroFrom<C1>>::zero_from(&other.0),
<T2 as ZeroFrom<C2>>::zero_from(&other.1),
<T3 as ZeroFrom<C3>>::zero_from(&other.2),
<T4 as ZeroFrom<C4>>::zero_from(&other.3),
<T5 as ZeroFrom<C5>>::zero_from(&other.4))
}
}tuple_zf_impl!(
90 (C1, T1, 0),
91 (C2, T2, 1),
92 (C3, T3, 2),
93 (C4, T4, 3),
94 (C5, T5, 4)
95);
96impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>, C3,
T3: ZeroFrom<'zf, C3>, C4, T4: ZeroFrom<'zf, C4>, C5,
T5: ZeroFrom<'zf, C5>, C6, T6: ZeroFrom<'zf, C6>>
ZeroFrom<'zf, (C1, C2, C3, C4, C5, C6)> for (T1, T2, T3, T4, T5, T6) {
fn zero_from(other: &'zf (C1, C2, C3, C4, C5, C6)) -> Self {
(<T1 as ZeroFrom<C1>>::zero_from(&other.0),
<T2 as ZeroFrom<C2>>::zero_from(&other.1),
<T3 as ZeroFrom<C3>>::zero_from(&other.2),
<T4 as ZeroFrom<C4>>::zero_from(&other.3),
<T5 as ZeroFrom<C5>>::zero_from(&other.4),
<T6 as ZeroFrom<C6>>::zero_from(&other.5))
}
}tuple_zf_impl!(
97 (C1, T1, 0),
98 (C2, T2, 1),
99 (C3, T3, 2),
100 (C4, T4, 3),
101 (C5, T5, 4),
102 (C6, T6, 5)
103);
104impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>, C3,
T3: ZeroFrom<'zf, C3>, C4, T4: ZeroFrom<'zf, C4>, C5,
T5: ZeroFrom<'zf, C5>, C6, T6: ZeroFrom<'zf, C6>, C7,
T7: ZeroFrom<'zf, C7>> ZeroFrom<'zf, (C1, C2, C3, C4, C5, C6, C7)> for
(T1, T2, T3, T4, T5, T6, T7) {
fn zero_from(other: &'zf (C1, C2, C3, C4, C5, C6, C7)) -> Self {
(<T1 as ZeroFrom<C1>>::zero_from(&other.0),
<T2 as ZeroFrom<C2>>::zero_from(&other.1),
<T3 as ZeroFrom<C3>>::zero_from(&other.2),
<T4 as ZeroFrom<C4>>::zero_from(&other.3),
<T5 as ZeroFrom<C5>>::zero_from(&other.4),
<T6 as ZeroFrom<C6>>::zero_from(&other.5),
<T7 as ZeroFrom<C7>>::zero_from(&other.6))
}
}tuple_zf_impl!(
105 (C1, T1, 0),
106 (C2, T2, 1),
107 (C3, T3, 2),
108 (C4, T4, 3),
109 (C5, T5, 4),
110 (C6, T6, 5),
111 (C7, T7, 6)
112);
113impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>, C3,
T3: ZeroFrom<'zf, C3>, C4, T4: ZeroFrom<'zf, C4>, C5,
T5: ZeroFrom<'zf, C5>, C6, T6: ZeroFrom<'zf, C6>, C7,
T7: ZeroFrom<'zf, C7>, C8, T8: ZeroFrom<'zf, C8>>
ZeroFrom<'zf, (C1, C2, C3, C4, C5, C6, C7, C8)> for
(T1, T2, T3, T4, T5, T6, T7, T8) {
fn zero_from(other: &'zf (C1, C2, C3, C4, C5, C6, C7, C8)) -> Self {
(<T1 as ZeroFrom<C1>>::zero_from(&other.0),
<T2 as ZeroFrom<C2>>::zero_from(&other.1),
<T3 as ZeroFrom<C3>>::zero_from(&other.2),
<T4 as ZeroFrom<C4>>::zero_from(&other.3),
<T5 as ZeroFrom<C5>>::zero_from(&other.4),
<T6 as ZeroFrom<C6>>::zero_from(&other.5),
<T7 as ZeroFrom<C7>>::zero_from(&other.6),
<T8 as ZeroFrom<C8>>::zero_from(&other.7))
}
}tuple_zf_impl!(
114 (C1, T1, 0),
115 (C2, T2, 1),
116 (C3, T3, 2),
117 (C4, T4, 3),
118 (C5, T5, 4),
119 (C6, T6, 5),
120 (C7, T7, 6),
121 (C8, T8, 7)
122);
123impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>, C3,
T3: ZeroFrom<'zf, C3>, C4, T4: ZeroFrom<'zf, C4>, C5,
T5: ZeroFrom<'zf, C5>, C6, T6: ZeroFrom<'zf, C6>, C7,
T7: ZeroFrom<'zf, C7>, C8, T8: ZeroFrom<'zf, C8>, C9,
T9: ZeroFrom<'zf, C9>> ZeroFrom<'zf, (C1, C2, C3, C4, C5, C6, C7, C8, C9)>
for (T1, T2, T3, T4, T5, T6, T7, T8, T9) {
fn zero_from(other: &'zf (C1, C2, C3, C4, C5, C6, C7, C8, C9)) -> Self {
(<T1 as ZeroFrom<C1>>::zero_from(&other.0),
<T2 as ZeroFrom<C2>>::zero_from(&other.1),
<T3 as ZeroFrom<C3>>::zero_from(&other.2),
<T4 as ZeroFrom<C4>>::zero_from(&other.3),
<T5 as ZeroFrom<C5>>::zero_from(&other.4),
<T6 as ZeroFrom<C6>>::zero_from(&other.5),
<T7 as ZeroFrom<C7>>::zero_from(&other.6),
<T8 as ZeroFrom<C8>>::zero_from(&other.7),
<T9 as ZeroFrom<C9>>::zero_from(&other.8))
}
}tuple_zf_impl!(
124 (C1, T1, 0),
125 (C2, T2, 1),
126 (C3, T3, 2),
127 (C4, T4, 3),
128 (C5, T5, 4),
129 (C6, T6, 5),
130 (C7, T7, 6),
131 (C8, T8, 7),
132 (C9, T9, 8)
133);
134impl<'zf, C1, T1: ZeroFrom<'zf, C1>, C2, T2: ZeroFrom<'zf, C2>, C3,
T3: ZeroFrom<'zf, C3>, C4, T4: ZeroFrom<'zf, C4>, C5,
T5: ZeroFrom<'zf, C5>, C6, T6: ZeroFrom<'zf, C6>, C7,
T7: ZeroFrom<'zf, C7>, C8, T8: ZeroFrom<'zf, C8>, C9,
T9: ZeroFrom<'zf, C9>, C10, T10: ZeroFrom<'zf, C10>>
ZeroFrom<'zf, (C1, C2, C3, C4, C5, C6, C7, C8, C9, C10)> for
(T1, T2, T3, T4, T5, T6, T7, T8, T9, T10) {
fn zero_from(other: &'zf (C1, C2, C3, C4, C5, C6, C7, C8, C9, C10))
-> Self {
(<T1 as ZeroFrom<C1>>::zero_from(&other.0),
<T2 as ZeroFrom<C2>>::zero_from(&other.1),
<T3 as ZeroFrom<C3>>::zero_from(&other.2),
<T4 as ZeroFrom<C4>>::zero_from(&other.3),
<T5 as ZeroFrom<C5>>::zero_from(&other.4),
<T6 as ZeroFrom<C6>>::zero_from(&other.5),
<T7 as ZeroFrom<C7>>::zero_from(&other.6),
<T8 as ZeroFrom<C8>>::zero_from(&other.7),
<T9 as ZeroFrom<C9>>::zero_from(&other.8),
<T10 as ZeroFrom<C10>>::zero_from(&other.9))
}
}tuple_zf_impl!(
135 (C1, T1, 0),
136 (C2, T2, 1),
137 (C3, T3, 2),
138 (C4, T4, 3),
139 (C5, T5, 4),
140 (C6, T6, 5),
141 (C7, T7, 6),
142 (C8, T8, 7),
143 (C9, T9, 8),
144 (C10, T10, 9)
145);