1use crate::*;
2
3#[derive(Debug, Copy, Clone, PartialEq, Eq)]
5pub struct TryFromIntError(pub(crate) ());
6
7impl From<lib::core::num::TryFromIntError> for TryFromIntError {
8 fn from(_: lib::core::num::TryFromIntError) -> TryFromIntError {
9 TryFromIntError(())
10 }
11}
12
13impl From<lib::core::convert::Infallible> for TryFromIntError {
14 fn from(_: lib::core::convert::Infallible) -> TryFromIntError {
15 TryFromIntError(())
16 }
17}
18
19impl Display for TryFromIntError {
20 fn fmt(&self, f: &mut Formatter<'_>) -> core::fmt::Result {
21 write!(f, "out of range integral type conversion attempted")
22 }
23}
24
25#[cfg(feature = "std")]
26impl std::error::Error for TryFromIntError {}
27
28macro_rules! implement_from {
30 {[$($name:ident),*], [$($from:ident),*] } => {$(implement_from!($name, $from);)*};
31 {$name:ident, [$($from:ident),*] } => {$(implement_from!($name, $from);)*};
32 {[$($name:ident),*], $from:ident } => {$(implement_from!($name, $from);)*};
33 {$name:ident, $from:ty} => {
34 impl From<$from> for $name {
35 fn from(x: $from) -> $name {
36 $name(x.into())
37 }
38 }
39 };
40}
41
42macro_rules! implement_try_from {
43 {[$($name:ident),*], [$($from:ident),*] } => {$(implement_try_from!($name, $from);)*};
44 {$name:ident, [$($from:ident),*] } => {$(implement_try_from!($name, $from);)*};
45 {[$($name:ident),*], $from:ident } => {$(implement_try_from!($name, $from);)*};
46 {$name:ident, $from:ty} => {
47 impl TryFrom<$from> for $name {
48 type Error = TryFromIntError;
49
50 fn try_from(x: $from) -> Result<$name, Self::Error> {
51 let value = x.try_into()?;
53
54 if value <= $name::MAX.into() && value >= $name::MIN.into() {
55 Ok($name(value))
56 } else {
57 Err(TryFromIntError(()))
58 }
59 }
60 }
61 };
62}
63
64macro_rules! implement_into {
66 {[$($name:ident),*], $from:ident } => {$(implement_into!($name, $from);)*};
67 {$name:ident, $into:ident} => {
68 impl From<$name> for $into {
69 fn from(x: $name) -> $into {
70 $into::from(x.0)
71 }
72 }
73 };
74}
75
76macro_rules! implement_try_into {
77 {[$($name:ident),*], $from:ident } => {$(implement_try_into!($name, $from);)*};
78 {$name:ident, $into:ident} => {
79
80 impl TryFrom<$name> for $into {
81 type Error = TryFromIntError;
82
83 fn try_from(x: $name) -> Result<$into, Self::Error> {
84 Ok($into::try_from(x.0)?)
85 }
86 }
87 };
88}
89
90implement_try_from!([u1, u2, u3, u4, u5, u6, u7], u8);
93implement_from!([u9, u10, u11, u12, u13, u14, u15], u8);
94implement_from!([u17, u18, u19, u20, u21, u22, u23, u24], u8);
95implement_from!([u25, u26, u27, u28, u29, u30, u31], u8);
96implement_from!([u33, u34, u35, u36, u37, u38, u39, u40], u8);
97implement_from!([u41, u42, u43, u44, u45, u46, u47, u48], u8);
98implement_from!([u49, u50, u51, u52, u53, u54, u55, u56], u8);
99implement_from!([u57, u58, u59, u60, u61, u62, u63], u8);
100
101implement_into!([u1, u2, u3, u4, u5, u6, u7], u8);
102implement_try_into!([u9, u10, u11, u12, u13, u14, u15], u8);
103implement_try_into!([u17, u18, u19, u20, u21, u22, u23, u24], u8);
104implement_try_into!([u25, u26, u27, u28, u29, u30, u31], u8);
105implement_try_into!([u33, u34, u35, u36, u37, u38, u39, u40], u8);
106implement_try_into!([u41, u42, u43, u44, u45, u46, u47, u48], u8);
107implement_try_into!([u49, u50, u51, u52, u53, u54, u55, u56], u8);
108implement_try_into!([u57, u58, u59, u60, u61, u62, u63], u8);
109
110implement_try_from!([u1, u2, u3, u4, u5, u6, u7], u16);
111implement_try_from!([u9, u10, u11, u12, u13, u14, u15], u16);
112implement_from!([u17, u18, u19, u20, u21, u22, u23, u24], u16);
113implement_from!([u25, u26, u27, u28, u29, u30, u31], u16);
114implement_from!([u33, u34, u35, u36, u37, u38, u39, u40], u16);
115implement_from!([u41, u42, u43, u44, u45, u46, u47, u48], u16);
116implement_from!([u49, u50, u51, u52, u53, u54, u55, u56], u16);
117implement_from!([u57, u58, u59, u60, u61, u62, u63], u16);
118
119implement_into!([u1, u2, u3, u4, u5, u6, u7], u16);
120implement_into!([u9, u10, u11, u12, u13, u14, u15], u16);
121implement_try_into!([u17, u18, u19, u20, u21, u22, u23, u24], u16);
122implement_try_into!([u25, u26, u27, u28, u29, u30, u31], u16);
123implement_try_into!([u33, u34, u35, u36, u37, u38, u39, u40], u16);
124implement_try_into!([u41, u42, u43, u44, u45, u46, u47, u48], u16);
125implement_try_into!([u49, u50, u51, u52, u53, u54, u55, u56], u16);
126implement_try_into!([u57, u58, u59, u60, u61, u62, u63], u16);
127
128implement_try_from!([u1, u2, u3, u4, u5, u6, u7], u32);
129implement_try_from!([u9, u10, u11, u12, u13, u14, u15], u32);
130implement_try_from!([u17, u18, u19, u20, u21, u22, u23, u24], u32);
131implement_try_from!([u25, u26, u27, u28, u29, u30, u31], u32);
132implement_from!([u33, u34, u35, u36, u37, u38, u39, u40], u32);
133implement_from!([u41, u42, u43, u44, u45, u46, u47, u48], u32);
134implement_from!([u49, u50, u51, u52, u53, u54, u55, u56], u32);
135implement_from!([u57, u58, u59, u60, u61, u62, u63], u32);
136
137implement_into!([u1, u2, u3, u4, u5, u6, u7], u32);
138implement_into!([u9, u10, u11, u12, u13, u14, u15], u32);
139implement_into!([u17, u18, u19, u20, u21, u22, u23, u24], u32);
140implement_into!([u25, u26, u27, u28, u29, u30, u31], u32);
141implement_try_into!([u33, u34, u35, u36, u37, u38, u39, u40], u32);
142implement_try_into!([u41, u42, u43, u44, u45, u46, u47, u48], u32);
143implement_try_into!([u49, u50, u51, u52, u53, u54, u55, u56], u32);
144implement_try_into!([u57, u58, u59, u60, u61, u62, u63], u32);
145
146implement_try_from!([u1, u2, u3, u4, u5, u6, u7], u64);
147implement_try_from!([u9, u10, u11, u12, u13, u14, u15], u64);
148implement_try_from!([u17, u18, u19, u20, u21, u22, u23, u24], u64);
149implement_try_from!([u25, u26, u27, u28, u29, u30, u31], u64);
150implement_try_from!([u33, u34, u35, u36, u37, u38, u39, u40], u64);
151implement_try_from!([u41, u42, u43, u44, u45, u46, u47, u48], u64);
152implement_try_from!([u49, u50, u51, u52, u53, u54, u55, u56], u64);
153implement_try_from!([u57, u58, u59, u60, u61, u62, u63], u64);
154
155implement_into!([u1, u2, u3, u4, u5, u6, u7], u64);
156implement_into!([u9, u10, u11, u12, u13, u14, u15], u64);
157implement_into!([u17, u18, u19, u20, u21, u22, u23, u24], u64);
158implement_into!([u25, u26, u27, u28, u29, u30, u31], u64);
159implement_into!([u33, u34, u35, u36, u37, u38, u39, u40], u64);
160implement_into!([u41, u42, u43, u44, u45, u46, u47, u48], u64);
161implement_into!([u49, u50, u51, u52, u53, u54, u55, u56], u64);
162implement_into!([u57, u58, u59, u60, u61, u62, u63], u64);
163
164implement_into!([u1, u2, u3, u4, u5, u6, u7], usize);
165implement_into!([u9, u10, u11, u12, u13, u14, u15], usize);
166
167implement_try_into!([u17, u18, u19, u20, u21, u22, u23, u24], usize);
168implement_try_into!([u25, u26, u27, u28, u29, u30, u31], usize);
169implement_try_into!([u33, u34, u35, u36, u37, u38, u39, u40], usize);
170implement_try_into!([u41, u42, u43, u44, u45, u46, u47, u48], usize);
171implement_try_into!([u49, u50, u51, u52, u53, u54, u55, u56], usize);
172implement_try_into!([u57, u58, u59, u60, u61, u62, u63], usize);
173
174implement_try_from!(
175 u1,
176 [
177 u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
178 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
179 u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59,
180 u60, u61, u62, u63, usize
181 ]
182);
183
184implement_from!(u2, [u1]);
185implement_try_from!(
186 u2,
187 [
188 u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22, u23,
189 u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42,
190 u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60,
191 u61, u62, u63, usize
192 ]
193);
194
195implement_from!(u3, [u2, u1]);
196implement_try_from!(
197 u3,
198 [
199 u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22, u23, u24,
200 u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43,
201 u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61,
202 u62, u63, usize
203 ]
204);
205
206implement_from!(u4, [u1, u2, u3]);
207implement_try_from!(
208 u4,
209 [
210 u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22, u23, u24, u25,
211 u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44,
212 u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62,
213 u63, usize
214 ]
215);
216
217implement_from!(u5, [u1, u2, u3, u4]);
218implement_try_from!(
219 u5,
220 [
221 u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26,
222 u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45,
223 u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63,
224 usize
225 ]
226);
227
228implement_from!(u6, [u1, u2, u3, u4, u5]);
229implement_try_from!(
230 u6,
231 [
232 u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26,
233 u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45,
234 u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63,
235 usize
236 ]
237);
238
239implement_from!(u7, [u1, u2, u3, u4, u5, u6]);
240implement_try_from!(
241 u7,
242 [
243 u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27,
244 u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46,
245 u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
246 ]
247);
248
249implement_from!(u9, [u1, u2, u3, u4, u5, u6, u7]);
250implement_try_from!(
251 u9,
252 [
253 u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28,
254 u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47,
255 u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
256 ]
257);
258
259implement_from!(u10, [u1, u2, u3, u4, u5, u6, u7, u9]);
260implement_try_from!(
261 u10,
262 [
263 u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29,
264 u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48,
265 u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
266 ]
267);
268
269implement_from!(u11, [u1, u2, u3, u4, u5, u6, u7, u9, u10]);
270implement_try_from!(
271 u11,
272 [
273 u12, u13, u14, u15, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30,
274 u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49,
275 u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
276 ]
277);
278
279implement_from!(u12, [u1, u2, u3, u4, u5, u6, u7, u9, u10, u11]);
280implement_try_from!(
281 u12,
282 [
283 u13, u14, u15, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31,
284 u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50,
285 u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
286 ]
287);
288
289implement_from!(u13, [u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12]);
290implement_try_from!(
291 u13,
292 [
293 u14, u15, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u33,
294 u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51,
295 u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
296 ]
297);
298
299implement_from!(u14, [u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13]);
300implement_try_from!(
301 u14,
302 [
303 u15, u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34,
304 u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52,
305 u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
306 ]
307);
308
309implement_from!(
310 u15,
311 [u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14]
312);
313implement_try_from!(
314 u15,
315 [
316 u17, u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35,
317 u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53,
318 u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
319 ]
320);
321
322implement_from!(
323 u17,
324 [u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15]
325);
326implement_try_from!(
327 u17,
328 [
329 u18, u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36,
330 u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54,
331 u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
332 ]
333);
334
335implement_from!(
336 u18,
337 [u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17]
338);
339implement_try_from!(
340 u18,
341 [
342 u19, u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37,
343 u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55,
344 u56, u57, u58, u59, u60, u61, u62, u63, usize
345 ]
346);
347
348implement_from!(
349 u19,
350 [u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18]
351);
352implement_try_from!(
353 u19,
354 [
355 u20, u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38,
356 u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56,
357 u57, u58, u59, u60, u61, u62, u63, usize
358 ]
359);
360
361implement_from!(
362 u20,
363 [u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19]
364);
365implement_try_from!(
366 u20,
367 [
368 u21, u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39,
369 u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57,
370 u58, u59, u60, u61, u62, u63, usize
371 ]
372);
373
374implement_from!(
375 u21,
376 [u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20]
377);
378implement_try_from!(
379 u21,
380 [
381 u22, u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40,
382 u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58,
383 u59, u60, u61, u62, u63, usize
384 ]
385);
386
387implement_from!(
388 u22,
389 [u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21]
390);
391implement_try_from!(
392 u22,
393 [
394 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
395 u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59,
396 u60, u61, u62, u63, usize
397 ]
398);
399
400implement_from!(
401 u23,
402 [u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22]
403);
404implement_try_from!(
405 u23,
406 [
407 u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42,
408 u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60,
409 u61, u62, u63, usize
410 ]
411);
412
413implement_from!(
414 u24,
415 [
416 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
417 u23
418 ]
419);
420implement_try_from!(
421 u24,
422 [
423 u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43,
424 u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61,
425 u62, u63, usize
426 ]
427);
428
429implement_from!(
430 u25,
431 [
432 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
433 u23, u24
434 ]
435);
436implement_try_from!(
437 u25,
438 [
439 u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44,
440 u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62,
441 u63, usize
442 ]
443);
444
445implement_from!(
446 u26,
447 [
448 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
449 u23, u24, u25
450 ]
451);
452implement_try_from!(
453 u26,
454 [
455 u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45,
456 u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63,
457 usize
458 ]
459);
460
461implement_from!(
462 u27,
463 [
464 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
465 u23, u24, u25, u26
466 ]
467);
468implement_try_from!(
469 u27,
470 [
471 u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46,
472 u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
473 ]
474);
475
476implement_from!(
477 u28,
478 [
479 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
480 u23, u24, u25, u26, u27
481 ]
482);
483implement_try_from!(
484 u28,
485 [
486 u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47,
487 u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
488 ]
489);
490
491implement_from!(
492 u29,
493 [
494 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
495 u23, u24, u25, u26, u27, u28
496 ]
497);
498implement_try_from!(
499 u29,
500 [
501 u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48,
502 u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
503 ]
504);
505
506implement_from!(
507 u30,
508 [
509 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
510 u23, u24, u25, u26, u27, u28, u29
511 ]
512);
513implement_try_from!(
514 u30,
515 [
516 u31, u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49,
517 u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
518 ]
519);
520
521implement_from!(
522 u31,
523 [
524 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
525 u23, u24, u25, u26, u27, u28, u29, u30
526 ]
527);
528implement_try_from!(
529 u31,
530 [
531 u33, u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50,
532 u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
533 ]
534);
535
536implement_from!(
537 u33,
538 [
539 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
540 u23, u24, u25, u26, u27, u28, u29, u30, u31
541 ]
542);
543implement_try_from!(
544 u33,
545 [
546 u34, u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51,
547 u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
548 ]
549);
550
551implement_from!(
552 u34,
553 [
554 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
555 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33
556 ]
557);
558implement_try_from!(
559 u34,
560 [
561 u35, u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52,
562 u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
563 ]
564);
565
566implement_from!(
567 u35,
568 [
569 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
570 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34
571 ]
572);
573implement_try_from!(
574 u35,
575 [
576 u36, u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53,
577 u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
578 ]
579);
580
581implement_from!(
582 u36,
583 [
584 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
585 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35
586 ]
587);
588implement_try_from!(
589 u36,
590 [
591 u37, u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54,
592 u55, u56, u57, u58, u59, u60, u61, u62, u63, usize
593 ]
594);
595
596implement_from!(
597 u37,
598 [
599 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
600 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36
601 ]
602);
603implement_try_from!(
604 u37,
605 [
606 u38, u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55,
607 u56, u57, u58, u59, u60, u61, u62, u63, usize
608 ]
609);
610
611implement_from!(
612 u38,
613 [
614 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
615 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37
616 ]
617);
618implement_try_from!(
619 u38,
620 [
621 u39, u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56,
622 u57, u58, u59, u60, u61, u62, u63, usize
623 ]
624);
625
626implement_from!(
627 u39,
628 [
629 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
630 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38
631 ]
632);
633implement_try_from!(
634 u39,
635 [
636 u40, u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57,
637 u58, u59, u60, u61, u62, u63, usize
638 ]
639);
640
641implement_from!(
642 u40,
643 [
644 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
645 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39
646 ]
647);
648implement_try_from!(
649 u40,
650 [
651 u41, u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58,
652 u59, u60, u61, u62, u63, usize
653 ]
654);
655
656implement_from!(
657 u41,
658 [
659 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
660 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40
661 ]
662);
663implement_try_from!(
664 u41,
665 [
666 u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59,
667 u60, u61, u62, u63, usize
668 ]
669);
670
671implement_from!(
672 u42,
673 [
674 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
675 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41
676 ]
677);
678implement_try_from!(
679 u42,
680 [
681 u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60,
682 u61, u62, u63, usize
683 ]
684);
685
686implement_from!(
687 u43,
688 [
689 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
690 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
691 u42
692 ]
693);
694implement_try_from!(
695 u43,
696 [
697 u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61,
698 u62, u63, usize
699 ]
700);
701
702implement_from!(
703 u44,
704 [
705 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
706 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
707 u42, u43
708 ]
709);
710implement_try_from!(
711 u44,
712 [
713 u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62,
714 u63, usize
715 ]
716);
717
718implement_from!(
719 u45,
720 [
721 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
722 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
723 u42, u43, u44
724 ]
725);
726implement_try_from!(
727 u45,
728 [
729 u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63,
730 usize
731 ]
732);
733
734implement_from!(
735 u46,
736 [
737 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
738 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
739 u42, u43, u44, u45
740 ]
741);
742implement_try_from!(
743 u46,
744 [u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize]
745);
746
747implement_from!(
748 u47,
749 [
750 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
751 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
752 u42, u43, u44, u45, u46
753 ]
754);
755implement_try_from!(
756 u47,
757 [u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize]
758);
759
760implement_from!(
761 u48,
762 [
763 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
764 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
765 u42, u43, u44, u45, u46, u47
766 ]
767);
768implement_try_from!(
769 u48,
770 [u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize]
771);
772
773implement_from!(
774 u49,
775 [
776 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
777 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
778 u42, u43, u44, u45, u46, u47, u48
779 ]
780);
781implement_try_from!(
782 u49,
783 [u50, u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize]
784);
785
786implement_from!(
787 u50,
788 [
789 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
790 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
791 u42, u43, u44, u45, u46, u47, u48, u49
792 ]
793);
794implement_try_from!(
795 u50,
796 [u51, u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize]
797);
798
799implement_from!(
800 u51,
801 [
802 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
803 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
804 u42, u43, u44, u45, u46, u47, u48, u49, u50
805 ]
806);
807implement_try_from!(
808 u51,
809 [u52, u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize]
810);
811
812implement_from!(
813 u52,
814 [
815 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
816 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
817 u42, u43, u44, u45, u46, u47, u48, u49, u50, u51
818 ]
819);
820implement_try_from!(
821 u52,
822 [u53, u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize]
823);
824
825implement_from!(
826 u53,
827 [
828 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
829 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
830 u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52
831 ]
832);
833implement_try_from!(
834 u53,
835 [u54, u55, u56, u57, u58, u59, u60, u61, u62, u63, usize]
836);
837
838implement_from!(
839 u54,
840 [
841 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
842 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
843 u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53
844 ]
845);
846implement_try_from!(u54, [u55, u56, u57, u58, u59, u60, u61, u62, u63, usize]);
847
848implement_from!(
849 u55,
850 [
851 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
852 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
853 u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54
854 ]
855);
856implement_try_from!(u55, [u56, u57, u58, u59, u60, u61, u62, u63, usize]);
857
858implement_from!(
859 u56,
860 [
861 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
862 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
863 u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55
864 ]
865);
866implement_try_from!(u56, [u57, u58, u59, u60, u61, u62, u63, usize]);
867
868implement_from!(
869 u57,
870 [
871 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
872 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
873 u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56
874 ]
875);
876implement_try_from!(u57, [u58, u59, u60, u61, u62, u63, usize]);
877
878implement_from!(
879 u58,
880 [
881 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
882 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
883 u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57
884 ]
885);
886implement_try_from!(u58, [u59, u60, u61, u62, u63, usize]);
887
888implement_from!(
889 u59,
890 [
891 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
892 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
893 u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58
894 ]
895);
896implement_try_from!(u59, [u60, u61, u62, u63, usize]);
897
898implement_from!(
899 u60,
900 [
901 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
902 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
903 u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59
904 ]
905);
906implement_try_from!(u60, [u61, u62, u63, usize]);
907
908implement_from!(
909 u61,
910 [
911 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
912 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
913 u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59,
914 u60
915 ]
916);
917implement_try_from!(u61, [u62, u63, usize]);
918
919implement_from!(
920 u62,
921 [
922 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
923 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
924 u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59,
925 u60, u61
926 ]
927);
928implement_from!(
929 u63,
930 [
931 u1, u2, u3, u4, u5, u6, u7, u9, u10, u11, u12, u13, u14, u15, u17, u18, u19, u20, u21, u22,
932 u23, u24, u25, u26, u27, u28, u29, u30, u31, u33, u34, u35, u36, u37, u38, u39, u40, u41,
933 u42, u43, u44, u45, u46, u47, u48, u49, u50, u51, u52, u53, u54, u55, u56, u57, u58, u59,
934 u60, u61, u62
935 ]
936);
937
938implement_try_into!([u1, u2, u3, u4, u5, u6, u7], i8);
940implement_try_into!([u9, u10, u11, u12, u13, u14, u15], i8);
941implement_try_into!([u17, u18, u19, u20, u21, u22, u23], i8);
942implement_try_into!([u24, u25, u26, u27, u28, u29, u30], i8);
943implement_try_into!([u31, u33, u34, u35, u36, u37, u38], i8);
944implement_try_into!([u39, u40, u41, u42, u43, u44, u45], i8);
945implement_try_into!([u46, u47, u48, u49, u50, u51, u52], i8);
946implement_try_into!([u53, u54, u55, u56, u57, u58, u59], i8);
947implement_try_into!([u60, u61], i8);
948
949implement_into!([u1, u2, u3, u4, u5, u6, u7], i16);
950implement_try_into!([u9, u10, u11, u12, u13, u14, u15], i16);
951implement_try_into!([u17, u18, u19, u20, u21, u22, u23], i16);
952implement_try_into!([u24, u25, u26, u27, u28, u29, u30], i16);
953implement_try_into!([u31, u33, u34, u35, u36, u37, u38], i16);
954implement_try_into!([u39, u40, u41, u42, u43, u44, u45], i16);
955implement_try_into!([u46, u47, u48, u49, u50, u51, u52], i16);
956implement_try_into!([u53, u54, u55, u56, u57, u58, u59], i16);
957implement_try_into!([u60, u61], i16);
958
959implement_into!([u1, u2, u3, u4, u5, u6, u7], i32);
960implement_into!([u9, u10, u11, u12, u13, u14, u15], i32);
961implement_try_into!([u17, u18, u19, u20, u21, u22, u23], i32);
962implement_try_into!([u24, u25, u26, u27, u28, u29, u30], i32);
963implement_try_into!([u31, u33, u34, u35, u36, u37, u38], i32);
964implement_try_into!([u39, u40, u41, u42, u43, u44, u45], i32);
965implement_try_into!([u46, u47, u48, u49, u50, u51, u52], i32);
966implement_try_into!([u53, u54, u55, u56, u57, u58, u59], i32);
967implement_try_into!([u60, u61], i32);
968
969implement_try_from!([i2, i3, i4, i5, i6, i7], i8);
972implement_from!([i9, i10, i11, i12, i13, i14, i15], i8);
973implement_from!([i17, i18, i19, i20, i21, i22, i23, i24], i8);
974implement_from!([i25, i26, i27, i28, i29, i30, i31], i8);
975implement_from!([i33, i34, i35, i36, i37, i38, i39, i40], i8);
976implement_from!([i41, i42, i43, i44, i45, i46, i47, i48], i8);
977implement_from!([i49, i50, i51, i52, i53, i54, i55, i56], i8);
978implement_from!([i57, i58, i59, i60, i61, i62, i63], i8);
979
980implement_into!([i2, i3, i4, i5, i6, i7], i8);
981implement_try_into!([i9, i10, i11, i12, i13, i14, i15], i8);
982implement_try_into!([i17, i18, i19, i20, i21, i22, i23, i24], i8);
983implement_try_into!([i25, i26, i27, i28, i29, i30, i31], i8);
984implement_try_into!([i33, i34, i35, i36, i37, i38, i39, i40], i8);
985implement_try_into!([i41, i42, i43, i44, i45, i46, i47, i48], i8);
986implement_try_into!([i49, i50, i51, i52, i53, i54, i55, i56], i8);
987implement_try_into!([i57, i58, i59, i60, i61, i62, i63], i8);
988
989implement_try_from!([i2, i3, i4, i5, i6, i7], i16);
990implement_try_from!([i9, i10, i11, i12, i13, i14, i15], i16);
991implement_from!([i17, i18, i19, i20, i21, i22, i23, i24], i16);
992implement_from!([i25, i26, i27, i28, i29, i30, i31], i16);
993implement_from!([i33, i34, i35, i36, i37, i38, i39, i40], i16);
994implement_from!([i41, i42, i43, i44, i45, i46, i47, i48], i16);
995implement_from!([i49, i50, i51, i52, i53, i54, i55, i56], i16);
996implement_from!([i57, i58, i59, i60, i61, i62, i63], i16);
997
998implement_into!([i2, i3, i4, i5, i6, i7], i16);
999implement_into!([i9, i10, i11, i12, i13, i14, i15], i16);
1000implement_try_into!([i17, i18, i19, i20, i21, i22, i23, i24], i16);
1001implement_try_into!([i25, i26, i27, i28, i29, i30, i31], i16);
1002implement_try_into!([i33, i34, i35, i36, i37, i38, i39, i40], i16);
1003implement_try_into!([i41, i42, i43, i44, i45, i46, i47, i48], i16);
1004implement_try_into!([i49, i50, i51, i52, i53, i54, i55, i56], i16);
1005implement_try_into!([i57, i58, i59, i60, i61, i62, i63], i16);
1006
1007implement_try_from!([i2, i3, i4, i5, i6, i7], i32);
1008implement_try_from!([i9, i10, i11, i12, i13, i14, i15], i32);
1009implement_try_from!([i17, i18, i19, i20, i21, i22, i23, i24], i32);
1010implement_try_from!([i25, i26, i27, i28, i29, i30, i31], i32);
1011implement_from!([i33, i34, i35, i36, i37, i38, i39, i40], i32);
1012implement_from!([i41, i42, i43, i44, i45, i46, i47, i48], i32);
1013implement_from!([i49, i50, i51, i52, i53, i54, i55, i56], i32);
1014implement_from!([i57, i58, i59, i60, i61, i62, i63], i32);
1015
1016implement_into!([i2, i3, i4, i5, i6, i7], i32);
1017implement_into!([i9, i10, i11, i12, i13, i14, i15], i32);
1018implement_into!([i17, i18, i19, i20, i21, i22, i23, i24], i32);
1019implement_into!([i25, i26, i27, i28, i29, i30, i31], i32);
1020implement_try_into!([i33, i34, i35, i36, i37, i38, i39, i40], i32);
1021implement_try_into!([i41, i42, i43, i44, i45, i46, i47, i48], i32);
1022implement_try_into!([i49, i50, i51, i52, i53, i54, i55, i56], i32);
1023implement_try_into!([i57, i58, i59, i60, i61, i62, i63], i32);
1024
1025implement_try_from!([i2, i3, i4, i5, i6, i7], i64);
1026implement_try_from!([i9, i10, i11, i12, i13, i14, i15], i64);
1027implement_try_from!([i17, i18, i19, i20, i21, i22, i23, i24], i64);
1028implement_try_from!([i25, i26, i27, i28, i29, i30, i31], i64);
1029implement_try_from!([i33, i34, i35, i36, i37, i38, i39, i40], i64);
1030implement_try_from!([i41, i42, i43, i44, i45, i46, i47, i48], i64);
1031implement_try_from!([i49, i50, i51, i52, i53, i54, i55, i56], i64);
1032implement_try_from!([i57, i58, i59, i60, i61, i62, i63], i64);
1033
1034implement_into!([i2, i3, i4, i5, i6, i7], i64);
1035implement_into!([i9, i10, i11, i12, i13, i14, i15], i64);
1036implement_into!([i17, i18, i19, i20, i21, i22, i23, i24], i64);
1037implement_into!([i25, i26, i27, i28, i29, i30, i31], i64);
1038implement_into!([i33, i34, i35, i36, i37, i38, i39, i40], i64);
1039implement_into!([i41, i42, i43, i44, i45, i46, i47, i48], i64);
1040implement_into!([i49, i50, i51, i52, i53, i54, i55, i56], i64);
1041implement_into!([i57, i58, i59, i60, i61, i62, i63], i64);
1042
1043implement_try_from!(
1044 i2,
1045 [
1046 i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22, i23,
1047 i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42,
1048 i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60,
1049 i61, i62, i63
1050 ]
1051);
1052
1053implement_from!(i3, [i2]);
1054implement_try_from!(
1055 i3,
1056 [
1057 i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22, i23, i24,
1058 i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43,
1059 i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61,
1060 i62, i63
1061 ]
1062);
1063
1064implement_from!(i4, [i2, i3]);
1065implement_try_from!(
1066 i4,
1067 [
1068 i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22, i23, i24, i25,
1069 i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44,
1070 i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62,
1071 i63
1072 ]
1073);
1074
1075implement_from!(i5, [i2, i3, i4]);
1076implement_try_from!(
1077 i5,
1078 [
1079 i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26,
1080 i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45,
1081 i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1082 ]
1083);
1084
1085implement_from!(i6, [i2, i3, i4, i5]);
1086implement_try_from!(
1087 i6,
1088 [
1089 i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26,
1090 i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45,
1091 i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1092 ]
1093);
1094
1095implement_from!(i7, [i2, i3, i4, i5, i6]);
1096implement_try_from!(
1097 i7,
1098 [
1099 i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27,
1100 i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46,
1101 i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1102 ]
1103);
1104
1105implement_from!(i9, [i2, i3, i4, i5, i6, i7]);
1106implement_try_from!(
1107 i9,
1108 [
1109 i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27, i28,
1110 i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47,
1111 i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1112 ]
1113);
1114
1115implement_from!(i10, [i2, i3, i4, i5, i6, i7, i9]);
1116implement_try_from!(
1117 i10,
1118 [
1119 i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27, i28, i29,
1120 i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48,
1121 i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1122 ]
1123);
1124
1125implement_from!(i11, [i2, i3, i4, i5, i6, i7, i9, i10]);
1126implement_try_from!(
1127 i11,
1128 [
1129 i12, i13, i14, i15, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27, i28, i29, i30,
1130 i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49,
1131 i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1132 ]
1133);
1134
1135implement_from!(i12, [i2, i3, i4, i5, i6, i7, i9, i10, i11]);
1136implement_try_from!(
1137 i12,
1138 [
1139 i13, i14, i15, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27, i28, i29, i30, i31,
1140 i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50,
1141 i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1142 ]
1143);
1144
1145implement_from!(i13, [i2, i3, i4, i5, i6, i7, i9, i10, i11, i12]);
1146implement_try_from!(
1147 i13,
1148 [
1149 i14, i15, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27, i28, i29, i30, i31, i33,
1150 i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51,
1151 i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1152 ]
1153);
1154
1155implement_from!(i14, [i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13]);
1156implement_try_from!(
1157 i14,
1158 [
1159 i15, i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34,
1160 i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52,
1161 i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1162 ]
1163);
1164
1165implement_from!(i15, [i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14]);
1166implement_try_from!(
1167 i15,
1168 [
1169 i17, i18, i19, i20, i21, i22, i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35,
1170 i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53,
1171 i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1172 ]
1173);
1174
1175implement_from!(
1176 i17,
1177 [i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15]
1178);
1179implement_try_from!(
1180 i17,
1181 [
1182 i18, i19, i20, i21, i22, i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36,
1183 i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54,
1184 i55, i56, i57, i58, i59, i60, i61, i62, i63
1185 ]
1186);
1187
1188implement_from!(
1189 i18,
1190 [i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17]
1191);
1192implement_try_from!(
1193 i18,
1194 [
1195 i19, i20, i21, i22, i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37,
1196 i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55,
1197 i56, i57, i58, i59, i60, i61, i62, i63
1198 ]
1199);
1200
1201implement_from!(
1202 i19,
1203 [i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18]
1204);
1205implement_try_from!(
1206 i19,
1207 [
1208 i20, i21, i22, i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38,
1209 i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56,
1210 i57, i58, i59, i60, i61, i62, i63
1211 ]
1212);
1213
1214implement_from!(
1215 i20,
1216 [i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19]
1217);
1218implement_try_from!(
1219 i20,
1220 [
1221 i21, i22, i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39,
1222 i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57,
1223 i58, i59, i60, i61, i62, i63
1224 ]
1225);
1226
1227implement_from!(
1228 i21,
1229 [i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20]
1230);
1231implement_try_from!(
1232 i21,
1233 [
1234 i22, i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40,
1235 i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58,
1236 i59, i60, i61, i62, i63
1237 ]
1238);
1239
1240implement_from!(
1241 i22,
1242 [i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21]
1243);
1244implement_try_from!(
1245 i22,
1246 [
1247 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1248 i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59,
1249 i60, i61, i62, i63
1250 ]
1251);
1252
1253implement_from!(
1254 i23,
1255 [i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22]
1256);
1257implement_try_from!(
1258 i23,
1259 [
1260 i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42,
1261 i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60,
1262 i61, i62, i63
1263 ]
1264);
1265
1266implement_from!(
1267 i24,
1268 [i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22, i23]
1269);
1270implement_try_from!(
1271 i24,
1272 [
1273 i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43,
1274 i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61,
1275 i62, i63
1276 ]
1277);
1278
1279implement_from!(
1280 i25,
1281 [
1282 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1283 i23, i24
1284 ]
1285);
1286implement_try_from!(
1287 i25,
1288 [
1289 i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44,
1290 i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62,
1291 i63
1292 ]
1293);
1294
1295implement_from!(
1296 i26,
1297 [
1298 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1299 i23, i24, i25
1300 ]
1301);
1302implement_try_from!(
1303 i26,
1304 [
1305 i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45,
1306 i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1307 ]
1308);
1309
1310implement_from!(
1311 i27,
1312 [
1313 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1314 i23, i24, i25, i26
1315 ]
1316);
1317implement_try_from!(
1318 i27,
1319 [
1320 i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46,
1321 i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1322 ]
1323);
1324
1325implement_from!(
1326 i28,
1327 [
1328 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1329 i23, i24, i25, i26, i27
1330 ]
1331);
1332implement_try_from!(
1333 i28,
1334 [
1335 i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47,
1336 i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1337 ]
1338);
1339
1340implement_from!(
1341 i29,
1342 [
1343 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1344 i23, i24, i25, i26, i27, i28
1345 ]
1346);
1347implement_try_from!(
1348 i29,
1349 [
1350 i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48,
1351 i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1352 ]
1353);
1354
1355implement_from!(
1356 i30,
1357 [
1358 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1359 i23, i24, i25, i26, i27, i28, i29
1360 ]
1361);
1362implement_try_from!(
1363 i30,
1364 [
1365 i31, i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49,
1366 i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1367 ]
1368);
1369
1370implement_from!(
1371 i31,
1372 [
1373 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1374 i23, i24, i25, i26, i27, i28, i29, i30
1375 ]
1376);
1377implement_try_from!(
1378 i31,
1379 [
1380 i33, i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50,
1381 i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1382 ]
1383);
1384
1385implement_from!(
1386 i33,
1387 [
1388 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1389 i23, i24, i25, i26, i27, i28, i29, i30, i31
1390 ]
1391);
1392implement_try_from!(
1393 i33,
1394 [
1395 i34, i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51,
1396 i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1397 ]
1398);
1399
1400implement_from!(
1401 i34,
1402 [
1403 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1404 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33
1405 ]
1406);
1407implement_try_from!(
1408 i34,
1409 [
1410 i35, i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52,
1411 i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1412 ]
1413);
1414
1415implement_from!(
1416 i35,
1417 [
1418 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1419 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34
1420 ]
1421);
1422implement_try_from!(
1423 i35,
1424 [
1425 i36, i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53,
1426 i54, i55, i56, i57, i58, i59, i60, i61, i62, i63
1427 ]
1428);
1429
1430implement_from!(
1431 i36,
1432 [
1433 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1434 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35
1435 ]
1436);
1437implement_try_from!(
1438 i36,
1439 [
1440 i37, i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54,
1441 i55, i56, i57, i58, i59, i60, i61, i62, i63
1442 ]
1443);
1444
1445implement_from!(
1446 i37,
1447 [
1448 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1449 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36
1450 ]
1451);
1452implement_try_from!(
1453 i37,
1454 [
1455 i38, i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55,
1456 i56, i57, i58, i59, i60, i61, i62, i63
1457 ]
1458);
1459
1460implement_from!(
1461 i38,
1462 [
1463 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1464 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37
1465 ]
1466);
1467implement_try_from!(
1468 i38,
1469 [
1470 i39, i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56,
1471 i57, i58, i59, i60, i61, i62, i63
1472 ]
1473);
1474
1475implement_from!(
1476 i39,
1477 [
1478 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1479 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38
1480 ]
1481);
1482implement_try_from!(
1483 i39,
1484 [
1485 i40, i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57,
1486 i58, i59, i60, i61, i62, i63
1487 ]
1488);
1489
1490implement_from!(
1491 i40,
1492 [
1493 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1494 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39
1495 ]
1496);
1497implement_try_from!(
1498 i40,
1499 [
1500 i41, i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58,
1501 i59, i60, i61, i62, i63
1502 ]
1503);
1504
1505implement_from!(
1506 i41,
1507 [
1508 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1509 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40
1510 ]
1511);
1512implement_try_from!(
1513 i41,
1514 [
1515 i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59,
1516 i60, i61, i62, i63
1517 ]
1518);
1519
1520implement_from!(
1521 i42,
1522 [
1523 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1524 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41
1525 ]
1526);
1527implement_try_from!(
1528 i42,
1529 [
1530 i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60,
1531 i61, i62, i63
1532 ]
1533);
1534
1535implement_from!(
1536 i43,
1537 [
1538 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1539 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1540 i42
1541 ]
1542);
1543implement_try_from!(
1544 i43,
1545 [
1546 i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61,
1547 i62, i63
1548 ]
1549);
1550
1551implement_from!(
1552 i44,
1553 [
1554 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1555 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1556 i42, i43
1557 ]
1558);
1559implement_try_from!(
1560 i44,
1561 [
1562 i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62,
1563 i63
1564 ]
1565);
1566
1567implement_from!(
1568 i45,
1569 [
1570 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1571 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1572 i42, i43, i44
1573 ]
1574);
1575implement_try_from!(
1576 i45,
1577 [i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63]
1578);
1579
1580implement_from!(
1581 i46,
1582 [
1583 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1584 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1585 i42, i43, i44, i45
1586 ]
1587);
1588implement_try_from!(
1589 i46,
1590 [i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63]
1591);
1592
1593implement_from!(
1594 i47,
1595 [
1596 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1597 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1598 i42, i43, i44, i45, i46
1599 ]
1600);
1601implement_try_from!(
1602 i47,
1603 [i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63]
1604);
1605
1606implement_from!(
1607 i48,
1608 [
1609 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1610 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1611 i42, i43, i44, i45, i46, i47
1612 ]
1613);
1614implement_try_from!(
1615 i48,
1616 [i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63]
1617);
1618
1619implement_from!(
1620 i49,
1621 [
1622 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1623 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1624 i42, i43, i44, i45, i46, i47, i48
1625 ]
1626);
1627implement_try_from!(
1628 i49,
1629 [i50, i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63]
1630);
1631
1632implement_from!(
1633 i50,
1634 [
1635 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1636 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1637 i42, i43, i44, i45, i46, i47, i48, i49
1638 ]
1639);
1640implement_try_from!(
1641 i50,
1642 [i51, i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63]
1643);
1644
1645implement_from!(
1646 i51,
1647 [
1648 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1649 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1650 i42, i43, i44, i45, i46, i47, i48, i49, i50
1651 ]
1652);
1653implement_try_from!(
1654 i51,
1655 [i52, i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63]
1656);
1657
1658implement_from!(
1659 i52,
1660 [
1661 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1662 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1663 i42, i43, i44, i45, i46, i47, i48, i49, i50, i51
1664 ]
1665);
1666implement_try_from!(i52, [i53, i54, i55, i56, i57, i58, i59, i60, i61, i62, i63]);
1667
1668implement_from!(
1669 i53,
1670 [
1671 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1672 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1673 i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52
1674 ]
1675);
1676implement_try_from!(i53, [i54, i55, i56, i57, i58, i59, i60, i61, i62, i63]);
1677
1678implement_from!(
1679 i54,
1680 [
1681 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1682 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1683 i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53
1684 ]
1685);
1686implement_try_from!(i54, [i55, i56, i57, i58, i59, i60, i61, i62, i63]);
1687
1688implement_from!(
1689 i55,
1690 [
1691 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1692 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1693 i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54
1694 ]
1695);
1696implement_try_from!(i55, [i56, i57, i58, i59, i60, i61, i62, i63]);
1697
1698implement_from!(
1699 i56,
1700 [
1701 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1702 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1703 i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55
1704 ]
1705);
1706implement_try_from!(i56, [i57, i58, i59, i60, i61, i62, i63]);
1707
1708implement_from!(
1709 i57,
1710 [
1711 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1712 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1713 i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56
1714 ]
1715);
1716implement_try_from!(i57, [i58, i59, i60, i61, i62, i63]);
1717
1718implement_from!(
1719 i58,
1720 [
1721 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1722 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1723 i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57
1724 ]
1725);
1726implement_try_from!(i58, [i59, i60, i61, i62, i63]);
1727
1728implement_from!(
1729 i59,
1730 [
1731 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1732 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1733 i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58
1734 ]
1735);
1736implement_try_from!(i59, [i60, i61, i62, i63]);
1737
1738implement_from!(
1739 i60,
1740 [
1741 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1742 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1743 i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59
1744 ]
1745);
1746implement_try_from!(i60, [i61, i62, i63]);
1747
1748implement_from!(
1749 i61,
1750 [
1751 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1752 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1753 i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59,
1754 i60
1755 ]
1756);
1757implement_try_from!(i61, [i62, i63]);
1758
1759implement_from!(
1760 i62,
1761 [
1762 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1763 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1764 i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59,
1765 i60, i61
1766 ]
1767);
1768implement_from!(
1769 i63,
1770 [
1771 i2, i3, i4, i5, i6, i7, i9, i10, i11, i12, i13, i14, i15, i17, i18, i19, i20, i21, i22,
1772 i23, i24, i25, i26, i27, i28, i29, i30, i31, i33, i34, i35, i36, i37, i38, i39, i40, i41,
1773 i42, i43, i44, i45, i46, i47, i48, i49, i50, i51, i52, i53, i54, i55, i56, i57, i58, i59,
1774 i60, i61, i62
1775 ]
1776);
1777
1778impl From<bool> for u1 {
1779 fn from(b: bool) -> Self {
1780 match b {
1781 true => u1(1),
1782 false => u1(0),
1783 }
1784 }
1785}
1786
1787impl From<u1> for bool {
1788 fn from(u1(x): u1) -> Self {
1789 match x {
1790 0 => false,
1791 1 => true,
1792 _ => unreachable!(),
1793 }
1794 }
1795}
1796
1797#[cfg(test)]
1798mod tests {
1799 use super::*;
1800
1801 #[test]
1802 fn test_infallible_conversion_unsigned() {
1803 assert_eq!(u16::from(u9(12)), 12u16);
1804 assert_eq!(u32::from(u9(12)), 12u32);
1805
1806 assert_eq!(u9(127), <u8 as Into<u9>>::into(127u8));
1807
1808 assert_eq!(u7::from(u6(65)), u7(65));
1809 }
1810
1811 #[test]
1812 fn test_infallible_conversion_signed() {
1813 assert_eq!(i16::from(i9(12)), 12i16);
1814 assert_eq!(i32::from(i9(12)), 12i32);
1815
1816 assert_eq!(i16::from(i9(-12)), -12i16);
1817 assert_eq!(i32::from(i9(-12)), -12i32);
1818
1819 assert_eq!(i9(127), 127i8.into());
1820
1821 assert_eq!(i7::from(i6(65)), i7(65));
1822 assert_eq!(i7::from(i6(-65)), i7(-65));
1823 }
1824
1825 #[test]
1826 fn test_fallible_conversion_unsigned() {
1827 assert_eq!(u7::try_from(u9(12)), Ok(u7(12)));
1828 assert_eq!(u9::try_from(u10(12)), Ok(u9(12)));
1829
1830 assert_eq!(127u16.try_into(), Ok(u9(127)));
1831
1832 assert_eq!(u5::try_from(u6(29)), Ok(u5(29)));
1833
1834 assert!(u16::try_from(u19(0x1_ffff)).is_err());
1835 assert!(u32::try_from(u39(0x001f_ffff_ffff)).is_err());
1836
1837 assert!(u6::try_from(u7(127)).is_err());
1838
1839 assert_eq!(u2::try_from(1usize), Ok(u2(1)));
1840 assert!(u2::try_from(4usize).is_err());
1841 assert_eq!(u17(1).try_into(), Ok(1usize));
1842
1843 assert_eq!(
1846 usize::try_from(0x1_FFFF_FFFFu64).is_err(),
1847 usize::try_from(u33::MAX).is_err()
1848 );
1849 }
1850
1851 #[test]
1852 fn test_fallible_conversion_signed() {
1853 assert_eq!(i7::try_from(i9(12)), Ok(i7(12)));
1854 assert_eq!(i9::try_from(i10(12)), Ok(i9(12)));
1855
1856 assert_eq!(i7::try_from(i9(-12)), Ok(i7(-12)));
1857 assert_eq!(i9::try_from(i10(-12)), Ok(i9(-12)));
1858
1859 assert_eq!(127i16.try_into(), Ok(i9(127)));
1860
1861 assert_eq!(i7::try_from(i9(63)), Ok(i7(63)));
1862 assert_eq!(i7::try_from(i9(-63)), Ok(i7(-63)));
1863
1864 assert!(i16::try_from(i19(0xffff)).is_err());
1865 assert!(i32::try_from(i39(0xffff_ffff)).is_err());
1866
1867 assert!(i16::try_from(i19(-0xffff)).is_err());
1868 assert!(i32::try_from(i39(-0xffff_ffff)).is_err());
1869
1870 assert!(i6::try_from(i7(64)).is_err());
1871 assert!(i6::try_from(i7(-64)).is_err());
1872 }
1873
1874 #[test]
1875 #[cfg(feature = "std")]
1876 fn error_trait() {
1877 assert_eq!(
1878 (&TryFromIntError(()) as &dyn std::error::Error).to_string(),
1879 "out of range integral type conversion attempted"
1880 );
1881 }
1882}