1use super::{ArraySize, AssocArraySize};
12
13#[cfg(feature = "extra-sizes")]
14pub use extra_sizes::*;
15
16macro_rules! impl_array_sizes {
22 ($testname:ident, $($len:expr => $ty:ident),+ $(,)?) => {
23 $(
24 unsafe impl ArraySize for $ty {
27 type ArrayType<T> = [T; $len];
28 }
29
30 impl<T> AssocArraySize for [T; $len] {
31 type Size = $ty;
32 }
33 )+
34
35 #[test]
36 fn $testname() {
37 use typenum::Unsigned;
38 $(
39 assert_eq!($len, $ty::USIZE);
40 )+
41 }
42 };
43}
44
45macro_rules! impl_array_sizes_with_import {
47 ($testname:ident, $($len:expr => $ty:ident),+ $(,)?) => {
48 $(
49 pub use typenum::consts::$ty;
50 )+
51 impl_array_sizes!($testname, $($len => $ty),+);
52 };
53}
54
55impl_array_sizes_with_import! {
56 base,
57 0 => U0,
58 1 => U1,
59 2 => U2,
60 3 => U3,
61 4 => U4,
62 5 => U5,
63 6 => U6,
64 7 => U7,
65 8 => U8,
66 9 => U9,
67 10 => U10,
68 11 => U11,
69 12 => U12,
70 13 => U13,
71 14 => U14,
72 15 => U15,
73 16 => U16,
74 17 => U17,
75 18 => U18,
76 19 => U19,
77 20 => U20,
78 21 => U21,
79 22 => U22,
80 23 => U23,
81 24 => U24,
82 25 => U25,
83 26 => U26,
84 27 => U27,
85 28 => U28,
86 29 => U29,
87 30 => U30,
88 31 => U31,
89 32 => U32,
90 33 => U33,
91 34 => U34,
92 35 => U35,
93 36 => U36,
94 37 => U37,
95 38 => U38,
96 39 => U39,
97 40 => U40,
98 41 => U41,
99 42 => U42,
100 43 => U43,
101 44 => U44,
102 45 => U45,
103 46 => U46,
104 47 => U47,
105 48 => U48,
106 49 => U49,
107 50 => U50,
108 51 => U51,
109 52 => U52,
110 53 => U53,
111 54 => U54,
112 55 => U55,
113 56 => U56,
114 57 => U57,
115 58 => U58,
116 59 => U59,
117 60 => U60,
118 61 => U61,
119 62 => U62,
120 63 => U63,
121 64 => U64,
122 65 => U65,
123 66 => U66,
124 67 => U67,
125 68 => U68,
126 69 => U69,
127 70 => U70,
128 71 => U71,
129 72 => U72,
130 73 => U73,
131 74 => U74,
132 75 => U75,
133 76 => U76,
134 77 => U77,
135 78 => U78,
136 79 => U79,
137 80 => U80,
138 81 => U81,
139 82 => U82,
140 83 => U83,
141 84 => U84,
142 85 => U85,
143 86 => U86,
144 87 => U87,
145 88 => U88,
146 89 => U89,
147 90 => U90,
148 91 => U91,
149 92 => U92,
150 93 => U93,
151 94 => U94,
152 95 => U95,
153 96 => U96,
154 97 => U97,
155 98 => U98,
156 99 => U99,
157 100 => U100,
158 101 => U101,
159 102 => U102,
160 103 => U103,
161 104 => U104,
162 105 => U105,
163 106 => U106,
164 107 => U107,
165 108 => U108,
166 109 => U109,
167 110 => U110,
168 111 => U111,
169 112 => U112,
170 113 => U113,
171 114 => U114,
172 115 => U115,
173 116 => U116,
174 117 => U117,
175 118 => U118,
176 119 => U119,
177 120 => U120,
178 121 => U121,
179 122 => U122,
180 123 => U123,
181 124 => U124,
182 125 => U125,
183 126 => U126,
184 127 => U127,
185 128 => U128,
186 129 => U129,
187 130 => U130,
188 131 => U131,
189 132 => U132,
190 133 => U133,
191 134 => U134,
192 135 => U135,
193 136 => U136,
194 137 => U137,
195 138 => U138,
196 139 => U139,
197 140 => U140,
198 141 => U141,
199 142 => U142,
200 143 => U143,
201 144 => U144,
202 145 => U145,
203 146 => U146,
204 147 => U147,
205 148 => U148,
206 149 => U149,
207 150 => U150,
208 151 => U151,
209 152 => U152,
210 153 => U153,
211 154 => U154,
212 155 => U155,
213 156 => U156,
214 157 => U157,
215 158 => U158,
216 159 => U159,
217 160 => U160,
218 161 => U161,
219 162 => U162,
220 163 => U163,
221 164 => U164,
222 165 => U165,
223 166 => U166,
224 167 => U167,
225 168 => U168,
226 169 => U169,
227 170 => U170,
228 171 => U171,
229 172 => U172,
230 173 => U173,
231 174 => U174,
232 175 => U175,
233 176 => U176,
234 177 => U177,
235 178 => U178,
236 179 => U179,
237 180 => U180,
238 181 => U181,
239 182 => U182,
240 183 => U183,
241 184 => U184,
242 185 => U185,
243 186 => U186,
244 187 => U187,
245 188 => U188,
246 189 => U189,
247 190 => U190,
248 191 => U191,
249 192 => U192,
250 193 => U193,
251 194 => U194,
252 195 => U195,
253 196 => U196,
254 197 => U197,
255 198 => U198,
256 199 => U199,
257 200 => U200,
258 201 => U201,
259 202 => U202,
260 203 => U203,
261 204 => U204,
262 205 => U205,
263 206 => U206,
264 207 => U207,
265 208 => U208,
266 209 => U209,
267 210 => U210,
268 211 => U211,
269 212 => U212,
270 213 => U213,
271 214 => U214,
272 215 => U215,
273 216 => U216,
274 217 => U217,
275 218 => U218,
276 219 => U219,
277 220 => U220,
278 221 => U221,
279 222 => U222,
280 223 => U223,
281 224 => U224,
282 225 => U225,
283 226 => U226,
284 227 => U227,
285 228 => U228,
286 229 => U229,
287 230 => U230,
288 231 => U231,
289 232 => U232,
290 233 => U233,
291 234 => U234,
292 235 => U235,
293 236 => U236,
294 237 => U237,
295 238 => U238,
296 239 => U239,
297 240 => U240,
298 241 => U241,
299 242 => U242,
300 243 => U243,
301 244 => U244,
302 245 => U245,
303 246 => U246,
304 247 => U247,
305 248 => U248,
306 249 => U249,
307 250 => U250,
308 251 => U251,
309 252 => U252,
310 253 => U253,
311 254 => U254,
312 255 => U255,
313 256 => U256,
314 257 => U257,
315 258 => U258,
316 259 => U259,
317 260 => U260,
318 261 => U261,
319 262 => U262,
320 263 => U263,
321 264 => U264,
322 265 => U265,
323 266 => U266,
324 267 => U267,
325 268 => U268,
326 269 => U269,
327 270 => U270,
328 271 => U271,
329 272 => U272,
330 273 => U273,
331 274 => U274,
332 275 => U275,
333 276 => U276,
334 277 => U277,
335 278 => U278,
336 279 => U279,
337 280 => U280,
338 281 => U281,
339 282 => U282,
340 283 => U283,
341 284 => U284,
342 285 => U285,
343 286 => U286,
344 287 => U287,
345 288 => U288,
346 289 => U289,
347 290 => U290,
348 291 => U291,
349 292 => U292,
350 293 => U293,
351 294 => U294,
352 295 => U295,
353 296 => U296,
354 297 => U297,
355 298 => U298,
356 299 => U299,
357 300 => U300,
358 301 => U301,
359 302 => U302,
360 303 => U303,
361 304 => U304,
362 305 => U305,
363 306 => U306,
364 307 => U307,
365 308 => U308,
366 309 => U309,
367 310 => U310,
368 311 => U311,
369 312 => U312,
370 313 => U313,
371 314 => U314,
372 315 => U315,
373 316 => U316,
374 317 => U317,
375 318 => U318,
376 319 => U319,
377 320 => U320,
378 321 => U321,
379 322 => U322,
380 323 => U323,
381 324 => U324,
382 325 => U325,
383 326 => U326,
384 327 => U327,
385 328 => U328,
386 329 => U329,
387 330 => U330,
388 331 => U331,
389 332 => U332,
390 333 => U333,
391 334 => U334,
392 335 => U335,
393 336 => U336,
394 337 => U337,
395 338 => U338,
396 339 => U339,
397 340 => U340,
398 341 => U341,
399 342 => U342,
400 343 => U343,
401 344 => U344,
402 345 => U345,
403 346 => U346,
404 347 => U347,
405 348 => U348,
406 349 => U349,
407 350 => U350,
408 351 => U351,
409 352 => U352,
410 353 => U353,
411 354 => U354,
412 355 => U355,
413 356 => U356,
414 357 => U357,
415 358 => U358,
416 359 => U359,
417 360 => U360,
418 361 => U361,
419 362 => U362,
420 363 => U363,
421 364 => U364,
422 365 => U365,
423 366 => U366,
424 367 => U367,
425 368 => U368,
426 369 => U369,
427 370 => U370,
428 371 => U371,
429 372 => U372,
430 373 => U373,
431 374 => U374,
432 375 => U375,
433 376 => U376,
434 377 => U377,
435 378 => U378,
436 379 => U379,
437 380 => U380,
438 381 => U381,
439 382 => U382,
440 383 => U383,
441 384 => U384,
442 385 => U385,
443 386 => U386,
444 387 => U387,
445 388 => U388,
446 389 => U389,
447 390 => U390,
448 391 => U391,
449 392 => U392,
450 393 => U393,
451 394 => U394,
452 395 => U395,
453 396 => U396,
454 397 => U397,
455 398 => U398,
456 399 => U399,
457 400 => U400,
458 401 => U401,
459 402 => U402,
460 403 => U403,
461 404 => U404,
462 405 => U405,
463 406 => U406,
464 407 => U407,
465 408 => U408,
466 409 => U409,
467 410 => U410,
468 411 => U411,
469 412 => U412,
470 413 => U413,
471 414 => U414,
472 415 => U415,
473 416 => U416,
474 417 => U417,
475 418 => U418,
476 419 => U419,
477 420 => U420,
478 421 => U421,
479 422 => U422,
480 423 => U423,
481 424 => U424,
482 425 => U425,
483 426 => U426,
484 427 => U427,
485 428 => U428,
486 429 => U429,
487 430 => U430,
488 431 => U431,
489 432 => U432,
490 433 => U433,
491 434 => U434,
492 435 => U435,
493 436 => U436,
494 437 => U437,
495 438 => U438,
496 439 => U439,
497 440 => U440,
498 441 => U441,
499 442 => U442,
500 443 => U443,
501 444 => U444,
502 445 => U445,
503 446 => U446,
504 447 => U447,
505 448 => U448,
506 449 => U449,
507 450 => U450,
508 451 => U451,
509 452 => U452,
510 453 => U453,
511 454 => U454,
512 455 => U455,
513 456 => U456,
514 457 => U457,
515 458 => U458,
516 459 => U459,
517 460 => U460,
518 461 => U461,
519 462 => U462,
520 463 => U463,
521 464 => U464,
522 465 => U465,
523 466 => U466,
524 467 => U467,
525 468 => U468,
526 469 => U469,
527 470 => U470,
528 471 => U471,
529 472 => U472,
530 473 => U473,
531 474 => U474,
532 475 => U475,
533 476 => U476,
534 477 => U477,
535 478 => U478,
536 479 => U479,
537 480 => U480,
538 481 => U481,
539 482 => U482,
540 483 => U483,
541 484 => U484,
542 485 => U485,
543 486 => U486,
544 487 => U487,
545 488 => U488,
546 489 => U489,
547 490 => U490,
548 491 => U491,
549 492 => U492,
550 493 => U493,
551 494 => U494,
552 495 => U495,
553 496 => U496,
554 497 => U497,
555 498 => U498,
556 499 => U499,
557 500 => U500,
558 501 => U501,
559 502 => U502,
560 503 => U503,
561 504 => U504,
562 505 => U505,
563 506 => U506,
564 507 => U507,
565 508 => U508,
566 509 => U509,
567 510 => U510,
568 511 => U511,
569 512 => U512,
570 528 => U528,
571 536 => U536,
572 544 => U544,
573 560 => U560,
574 568 => U568,
575 576 => U576,
576 592 => U592,
577 608 => U608,
578 624 => U624,
579 640 => U640,
580 656 => U656,
581 672 => U672,
582 688 => U688,
583 704 => U704,
584 720 => U720,
585 736 => U736,
586 752 => U752,
587 768 => U768,
588 784 => U784,
589 800 => U800,
590 816 => U816,
591 832 => U832,
592 848 => U848,
593 864 => U864,
594 880 => U880,
595 896 => U896,
596 912 => U912,
597 928 => U928,
598 944 => U944,
599 960 => U960,
600 976 => U976,
601 992 => U992,
602 1008 => U1008,
603 1024 => U1024,
604 2048 => U2048,
605 4096 => U4096,
606 8192 => U8192,
607}
608
609#[cfg(feature = "extra-sizes")]
613#[allow(missing_docs)]
614mod extra_sizes {
615 use super::{ArraySize, AssocArraySize};
616 use typenum::{
617 UInt, UTerm,
618 consts::{B0, B1},
619 };
620
621 macro_rules! uint {
625 () => { UTerm };
626 (0 $($bs:tt)*) => { UInt< uint!($($bs)*), B0 > };
627 (1 $($bs:tt)*) => { UInt< uint!($($bs)*), B1 > };
628 }
629
630 pub type U1040 = uint!(0 0 0 0 1 0 0 0 0 0 1);
631 pub type U1056 = uint!(0 0 0 0 0 1 0 0 0 0 1);
632 pub type U1072 = uint!(0 0 0 0 1 1 0 0 0 0 1);
633 pub type U1088 = uint!(0 0 0 0 0 0 1 0 0 0 1);
634 pub type U1104 = uint!(0 0 0 0 1 0 1 0 0 0 1);
635 pub type U1120 = uint!(0 0 0 0 0 1 1 0 0 0 1);
636 pub type U1136 = uint!(0 0 0 0 1 1 1 0 0 0 1);
637 pub type U1152 = uint!(0 0 0 0 0 0 0 1 0 0 1);
638 pub type U1168 = uint!(0 0 0 0 1 0 0 1 0 0 1);
639 pub type U1184 = uint!(0 0 0 0 0 1 0 1 0 0 1);
640 pub type U1200 = uint!(0 0 0 0 1 1 0 1 0 0 1);
641 pub type U1216 = uint!(0 0 0 0 0 0 1 1 0 0 1);
642 pub type U1232 = uint!(0 0 0 0 1 0 1 1 0 0 1);
643 pub type U1248 = uint!(0 0 0 0 0 1 1 1 0 0 1);
644 pub type U1264 = uint!(0 0 0 0 1 1 1 1 0 0 1);
645 pub type U1280 = uint!(0 0 0 0 0 0 0 0 1 0 1);
646 pub type U1296 = uint!(0 0 0 0 1 0 0 0 1 0 1);
647 pub type U1312 = uint!(0 0 0 0 0 1 0 0 1 0 1);
648 pub type U1328 = uint!(0 0 0 0 1 1 0 0 1 0 1);
649 pub type U1344 = uint!(0 0 0 0 0 0 1 0 1 0 1);
650 pub type U1360 = uint!(0 0 0 0 1 0 1 0 1 0 1);
651 pub type U1376 = uint!(0 0 0 0 0 1 1 0 1 0 1);
652 pub type U1392 = uint!(0 0 0 0 1 1 1 0 1 0 1);
653 pub type U1408 = uint!(0 0 0 0 0 0 0 1 1 0 1);
654 pub type U1424 = uint!(0 0 0 0 1 0 0 1 1 0 1);
655 pub type U1440 = uint!(0 0 0 0 0 1 0 1 1 0 1);
656 pub type U1456 = uint!(0 0 0 0 1 1 0 1 1 0 1);
657 pub type U1472 = uint!(0 0 0 0 0 0 1 1 1 0 1);
658 pub type U1488 = uint!(0 0 0 0 1 0 1 1 1 0 1);
659 pub type U1504 = uint!(0 0 0 0 0 1 1 1 1 0 1);
660 pub type U1520 = uint!(0 0 0 0 1 1 1 1 1 0 1);
661 pub type U1536 = uint!(0 0 0 0 0 0 0 0 0 1 1);
662 pub type U1552 = uint!(0 0 0 0 1 0 0 0 0 1 1);
663 pub type U1568 = uint!(0 0 0 0 0 1 0 0 0 1 1);
664 pub type U1584 = uint!(0 0 0 0 1 1 0 0 0 1 1);
665 pub type U1600 = uint!(0 0 0 0 0 0 1 0 0 1 1);
666 pub type U1616 = uint!(0 0 0 0 1 0 1 0 0 1 1);
667 pub type U1632 = uint!(0 0 0 0 0 1 1 0 0 1 1);
668 pub type U1648 = uint!(0 0 0 0 1 1 1 0 0 1 1);
669 pub type U1664 = uint!(0 0 0 0 0 0 0 1 0 1 1);
670 pub type U1680 = uint!(0 0 0 0 1 0 0 1 0 1 1);
671 pub type U1696 = uint!(0 0 0 0 0 1 0 1 0 1 1);
672 pub type U1712 = uint!(0 0 0 0 1 1 0 1 0 1 1);
673 pub type U1728 = uint!(0 0 0 0 0 0 1 1 0 1 1);
674 pub type U1744 = uint!(0 0 0 0 1 0 1 1 0 1 1);
675 pub type U1760 = uint!(0 0 0 0 0 1 1 1 0 1 1);
676 pub type U1776 = uint!(0 0 0 0 1 1 1 1 0 1 1);
677 pub type U1792 = uint!(0 0 0 0 0 0 0 0 1 1 1);
678 pub type U1808 = uint!(0 0 0 0 1 0 0 0 1 1 1);
679 pub type U1824 = uint!(0 0 0 0 0 1 0 0 1 1 1);
680 pub type U1840 = uint!(0 0 0 0 1 1 0 0 1 1 1);
681 pub type U1856 = uint!(0 0 0 0 0 0 1 0 1 1 1);
682 pub type U1872 = uint!(0 0 0 0 1 0 1 0 1 1 1);
683 pub type U1888 = uint!(0 0 0 0 0 1 1 0 1 1 1);
684 pub type U1904 = uint!(0 0 0 0 1 1 1 0 1 1 1);
685 pub type U1920 = uint!(0 0 0 0 0 0 0 1 1 1 1);
686 pub type U1936 = uint!(0 0 0 0 1 0 0 1 1 1 1);
687 pub type U1952 = uint!(0 0 0 0 0 1 0 1 1 1 1);
688 pub type U1968 = uint!(0 0 0 0 1 1 0 1 1 1 1);
689 pub type U1984 = uint!(0 0 0 0 0 0 1 1 1 1 1);
690 pub type U2000 = uint!(0 0 0 0 1 0 1 1 1 1 1);
691 pub type U2016 = uint!(0 0 0 0 0 1 1 1 1 1 1);
692 pub type U2032 = uint!(0 0 0 0 1 1 1 1 1 1 1);
693 pub type U2064 = uint!(0 0 0 0 1 0 0 0 0 0 0 1);
694 pub type U2080 = uint!(0 0 0 0 0 1 0 0 0 0 0 1);
695 pub type U2096 = uint!(0 0 0 0 1 1 0 0 0 0 0 1);
696 pub type U2112 = uint!(0 0 0 0 0 0 1 0 0 0 0 1);
697 pub type U2128 = uint!(0 0 0 0 1 0 1 0 0 0 0 1);
698 pub type U2144 = uint!(0 0 0 0 0 1 1 0 0 0 0 1);
699 pub type U2160 = uint!(0 0 0 0 1 1 1 0 0 0 0 1);
700 pub type U2176 = uint!(0 0 0 0 0 0 0 1 0 0 0 1);
701 pub type U2192 = uint!(0 0 0 0 1 0 0 1 0 0 0 1);
702 pub type U2208 = uint!(0 0 0 0 0 1 0 1 0 0 0 1);
703 pub type U2224 = uint!(0 0 0 0 1 1 0 1 0 0 0 1);
704 pub type U2240 = uint!(0 0 0 0 0 0 1 1 0 0 0 1);
705 pub type U2256 = uint!(0 0 0 0 1 0 1 1 0 0 0 1);
706 pub type U2272 = uint!(0 0 0 0 0 1 1 1 0 0 0 1);
707 pub type U2288 = uint!(0 0 0 0 1 1 1 1 0 0 0 1);
708 pub type U2304 = uint!(0 0 0 0 0 0 0 0 1 0 0 1);
709 pub type U2320 = uint!(0 0 0 0 1 0 0 0 1 0 0 1);
710 pub type U2336 = uint!(0 0 0 0 0 1 0 0 1 0 0 1);
711 pub type U2352 = uint!(0 0 0 0 1 1 0 0 1 0 0 1);
712 pub type U2368 = uint!(0 0 0 0 0 0 1 0 1 0 0 1);
713 pub type U2384 = uint!(0 0 0 0 1 0 1 0 1 0 0 1);
714 pub type U2400 = uint!(0 0 0 0 0 1 1 0 1 0 0 1);
715 pub type U2416 = uint!(0 0 0 0 1 1 1 0 1 0 0 1);
716 pub type U2432 = uint!(0 0 0 0 0 0 0 1 1 0 0 1);
717 pub type U2448 = uint!(0 0 0 0 1 0 0 1 1 0 0 1);
718 pub type U2464 = uint!(0 0 0 0 0 1 0 1 1 0 0 1);
719 pub type U2480 = uint!(0 0 0 0 1 1 0 1 1 0 0 1);
720 pub type U2496 = uint!(0 0 0 0 0 0 1 1 1 0 0 1);
721 pub type U2512 = uint!(0 0 0 0 1 0 1 1 1 0 0 1);
722 pub type U2528 = uint!(0 0 0 0 0 1 1 1 1 0 0 1);
723 pub type U2544 = uint!(0 0 0 0 1 1 1 1 1 0 0 1);
724 pub type U2560 = uint!(0 0 0 0 0 0 0 0 0 1 0 1);
725 pub type U2576 = uint!(0 0 0 0 1 0 0 0 0 1 0 1);
726 pub type U2592 = uint!(0 0 0 0 0 1 0 0 0 1 0 1);
727 pub type U2608 = uint!(0 0 0 0 1 1 0 0 0 1 0 1);
728 pub type U2624 = uint!(0 0 0 0 0 0 1 0 0 1 0 1);
729 pub type U2640 = uint!(0 0 0 0 1 0 1 0 0 1 0 1);
730 pub type U2656 = uint!(0 0 0 0 0 1 1 0 0 1 0 1);
731 pub type U2672 = uint!(0 0 0 0 1 1 1 0 0 1 0 1);
732 pub type U2688 = uint!(0 0 0 0 0 0 0 1 0 1 0 1);
733 pub type U2704 = uint!(0 0 0 0 1 0 0 1 0 1 0 1);
734 pub type U2720 = uint!(0 0 0 0 0 1 0 1 0 1 0 1);
735 pub type U2736 = uint!(0 0 0 0 1 1 0 1 0 1 0 1);
736 pub type U2752 = uint!(0 0 0 0 0 0 1 1 0 1 0 1);
737 pub type U2768 = uint!(0 0 0 0 1 0 1 1 0 1 0 1);
738 pub type U2784 = uint!(0 0 0 0 0 1 1 1 0 1 0 1);
739 pub type U2800 = uint!(0 0 0 0 1 1 1 1 0 1 0 1);
740 pub type U2816 = uint!(0 0 0 0 0 0 0 0 1 1 0 1);
741 pub type U2832 = uint!(0 0 0 0 1 0 0 0 1 1 0 1);
742 pub type U2848 = uint!(0 0 0 0 0 1 0 0 1 1 0 1);
743 pub type U2864 = uint!(0 0 0 0 1 1 0 0 1 1 0 1);
744 pub type U2880 = uint!(0 0 0 0 0 0 1 0 1 1 0 1);
745 pub type U2896 = uint!(0 0 0 0 1 0 1 0 1 1 0 1);
746 pub type U2912 = uint!(0 0 0 0 0 1 1 0 1 1 0 1);
747 pub type U2928 = uint!(0 0 0 0 1 1 1 0 1 1 0 1);
748 pub type U2944 = uint!(0 0 0 0 0 0 0 1 1 1 0 1);
749 pub type U2960 = uint!(0 0 0 0 1 0 0 1 1 1 0 1);
750 pub type U2976 = uint!(0 0 0 0 0 1 0 1 1 1 0 1);
751 pub type U2992 = uint!(0 0 0 0 1 1 0 1 1 1 0 1);
752 pub type U3008 = uint!(0 0 0 0 0 0 1 1 1 1 0 1);
753 pub type U3024 = uint!(0 0 0 0 1 0 1 1 1 1 0 1);
754 pub type U3040 = uint!(0 0 0 0 0 1 1 1 1 1 0 1);
755 pub type U3056 = uint!(0 0 0 0 1 1 1 1 1 1 0 1);
756 pub type U3072 = uint!(0 0 0 0 0 0 0 0 0 0 1 1);
757 pub type U3088 = uint!(0 0 0 0 1 0 0 0 0 0 1 1);
758 pub type U3104 = uint!(0 0 0 0 0 1 0 0 0 0 1 1);
759 pub type U3120 = uint!(0 0 0 0 1 1 0 0 0 0 1 1);
760 pub type U3136 = uint!(0 0 0 0 0 0 1 0 0 0 1 1);
761 pub type U3152 = uint!(0 0 0 0 1 0 1 0 0 0 1 1);
762 pub type U3168 = uint!(0 0 0 0 0 1 1 0 0 0 1 1);
763 pub type U3184 = uint!(0 0 0 0 1 1 1 0 0 0 1 1);
764 pub type U3200 = uint!(0 0 0 0 0 0 0 1 0 0 1 1);
765 pub type U3216 = uint!(0 0 0 0 1 0 0 1 0 0 1 1);
766 pub type U3232 = uint!(0 0 0 0 0 1 0 1 0 0 1 1);
767 pub type U3248 = uint!(0 0 0 0 1 1 0 1 0 0 1 1);
768 pub type U3264 = uint!(0 0 0 0 0 0 1 1 0 0 1 1);
769 pub type U3280 = uint!(0 0 0 0 1 0 1 1 0 0 1 1);
770 pub type U3296 = uint!(0 0 0 0 0 1 1 1 0 0 1 1);
771 pub type U3312 = uint!(0 0 0 0 1 1 1 1 0 0 1 1);
772 pub type U3328 = uint!(0 0 0 0 0 0 0 0 1 0 1 1);
773 pub type U3344 = uint!(0 0 0 0 1 0 0 0 1 0 1 1);
774 pub type U3360 = uint!(0 0 0 0 0 1 0 0 1 0 1 1);
775 pub type U3376 = uint!(0 0 0 0 1 1 0 0 1 0 1 1);
776 pub type U3392 = uint!(0 0 0 0 0 0 1 0 1 0 1 1);
777 pub type U3408 = uint!(0 0 0 0 1 0 1 0 1 0 1 1);
778 pub type U3424 = uint!(0 0 0 0 0 1 1 0 1 0 1 1);
779 pub type U3440 = uint!(0 0 0 0 1 1 1 0 1 0 1 1);
780 pub type U3456 = uint!(0 0 0 0 0 0 0 1 1 0 1 1);
781 pub type U3472 = uint!(0 0 0 0 1 0 0 1 1 0 1 1);
782 pub type U3488 = uint!(0 0 0 0 0 1 0 1 1 0 1 1);
783 pub type U3504 = uint!(0 0 0 0 1 1 0 1 1 0 1 1);
784 pub type U3520 = uint!(0 0 0 0 0 0 1 1 1 0 1 1);
785 pub type U3536 = uint!(0 0 0 0 1 0 1 1 1 0 1 1);
786 pub type U3552 = uint!(0 0 0 0 0 1 1 1 1 0 1 1);
787 pub type U3568 = uint!(0 0 0 0 1 1 1 1 1 0 1 1);
788 pub type U3584 = uint!(0 0 0 0 0 0 0 0 0 1 1 1);
789 pub type U3600 = uint!(0 0 0 0 1 0 0 0 0 1 1 1);
790 pub type U3616 = uint!(0 0 0 0 0 1 0 0 0 1 1 1);
791 pub type U3632 = uint!(0 0 0 0 1 1 0 0 0 1 1 1);
792 pub type U3648 = uint!(0 0 0 0 0 0 1 0 0 1 1 1);
793 pub type U3664 = uint!(0 0 0 0 1 0 1 0 0 1 1 1);
794 pub type U3680 = uint!(0 0 0 0 0 1 1 0 0 1 1 1);
795 pub type U3696 = uint!(0 0 0 0 1 1 1 0 0 1 1 1);
796 pub type U3712 = uint!(0 0 0 0 0 0 0 1 0 1 1 1);
797 pub type U3728 = uint!(0 0 0 0 1 0 0 1 0 1 1 1);
798 pub type U3744 = uint!(0 0 0 0 0 1 0 1 0 1 1 1);
799 pub type U3760 = uint!(0 0 0 0 1 1 0 1 0 1 1 1);
800 pub type U3776 = uint!(0 0 0 0 0 0 1 1 0 1 1 1);
801 pub type U3792 = uint!(0 0 0 0 1 0 1 1 0 1 1 1);
802 pub type U3808 = uint!(0 0 0 0 0 1 1 1 0 1 1 1);
803 pub type U3824 = uint!(0 0 0 0 1 1 1 1 0 1 1 1);
804 pub type U3840 = uint!(0 0 0 0 0 0 0 0 1 1 1 1);
805 pub type U3856 = uint!(0 0 0 0 1 0 0 0 1 1 1 1);
806 pub type U3872 = uint!(0 0 0 0 0 1 0 0 1 1 1 1);
807 pub type U3888 = uint!(0 0 0 0 1 1 0 0 1 1 1 1);
808 pub type U3904 = uint!(0 0 0 0 0 0 1 0 1 1 1 1);
809 pub type U3920 = uint!(0 0 0 0 1 0 1 0 1 1 1 1);
810 pub type U3936 = uint!(0 0 0 0 0 1 1 0 1 1 1 1);
811 pub type U3952 = uint!(0 0 0 0 1 1 1 0 1 1 1 1);
812 pub type U3968 = uint!(0 0 0 0 0 0 0 1 1 1 1 1);
813 pub type U3984 = uint!(0 0 0 0 1 0 0 1 1 1 1 1);
814 pub type U4000 = uint!(0 0 0 0 0 1 0 1 1 1 1 1);
815 pub type U4016 = uint!(0 0 0 0 1 1 0 1 1 1 1 1);
816 pub type U4032 = uint!(0 0 0 0 0 0 1 1 1 1 1 1);
817 pub type U4048 = uint!(0 0 0 0 1 0 1 1 1 1 1 1);
818 pub type U4064 = uint!(0 0 0 0 0 1 1 1 1 1 1 1);
819 pub type U4080 = uint!(0 0 0 0 1 1 1 1 1 1 1 1);
820
821 pub type U2420 = uint!(0 0 1 0 1 1 1 0 1 0 0 1);
826 pub type U3309 = uint!(1 0 1 1 0 1 1 1 0 0 1 1);
827 pub type U4480 = uint!(0 0 0 0 0 0 0 1 1 0 0 0 1);
828 pub type U4544 = uint!(0 0 0 0 0 0 1 1 1 0 0 0 1);
829 pub type U4595 = uint!(1 1 0 0 1 1 1 1 1 0 0 0 1);
830 pub type U4627 = uint!(1 1 0 0 1 0 0 0 0 1 0 0 1);
831 pub type U4896 = uint!(0 0 0 0 0 1 0 0 1 1 0 0 1);
832
833 pub type U7856 = uint!(0 0 0 0 1 1 0 1 0 1 1 1 1);
835 pub type U16224 = uint!(0 0 0 0 0 1 1 0 1 1 1 1 1 1);
836 pub type U17088 = uint!(0 0 0 0 0 0 1 1 0 1 0 0 0 0 1);
837 pub type U29792 = uint!(0 0 0 0 0 1 1 0 0 0 1 0 1 1 1);
838 pub type U35664 = uint!(0 0 0 0 1 0 1 0 1 1 0 1 0 0 0 1);
839 pub type U49856 = uint!(0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1);
840
841 pub type U749 = uint!(1 0 1 1 0 1 1 1 0 1);
843 pub type U781 = uint!(1 0 1 1 0 0 0 0 1 1);
844 pub type U877 = uint!(1 0 1 1 0 1 1 0 1 1);
845 pub type U1124 = uint!(0 0 1 0 0 1 1 0 0 0 1);
846 pub type U1156 = uint!(0 0 1 0 0 0 0 1 0 0 1);
847 pub type U1252 = uint!(0 0 1 0 0 1 1 1 0 0 1);
848 pub type U1498 = uint!(0 1 0 1 1 0 1 1 1 0 1);
849 pub type U1530 = uint!(0 1 0 1 1 1 1 1 1 0 1);
850 pub type U1658 = uint!(0 1 0 1 1 1 1 0 0 1 1);
851
852 pub type U2047 = uint!(1 1 1 1 1 1 1 1 1 1 1);
854 pub type U2180 = uint!(0 0 1 0 0 0 0 1 0 0 0 1);
855 pub type U4292 = uint!(0 0 1 0 0 0 1 1 0 0 0 0 1);
856 pub type U8516 = uint!(0 0 1 0 0 0 1 0 1 0 0 0 0 1);
857
858 pub type U9616 = uint!(0 0 0 0 1 0 0 1 1 0 1 0 0 1);
861 pub type U19888 = uint!(0 0 0 0 1 1 0 1 1 0 1 1 0 0 1);
862 pub type U9720 = uint!(0 0 0 1 1 1 1 1 1 0 1 0 0 1);
863 pub type U9752 = uint!(0 0 0 1 1 0 0 0 0 1 1 0 0 1);
864
865 pub type U15632 = uint!(0 0 0 0 1 0 0 0 1 0 1 1 1 1);
867 pub type U31296 = uint!(0 0 0 0 0 0 1 0 0 1 0 1 1 1 1);
868 pub type U15744 = uint!(0 0 0 0 0 0 0 1 1 0 1 1 1 1);
869 pub type U15792 = uint!(0 0 0 0 1 1 0 1 1 0 1 1 1 1);
870
871 pub type U21520 = uint!(0 0 0 0 1 0 0 0 0 0 1 0 1 0 1);
873 pub type U43088 = uint!(0 0 0 0 1 0 1 0 0 0 0 1 0 1 0 1);
874 pub type U21632 = uint!(0 0 0 0 0 0 0 1 0 0 1 0 1 0 1);
875 pub type U21696 = uint!(0 0 0 0 0 0 1 1 0 0 1 0 1 0 1);
876
877 impl_array_sizes! {
878 base_extra,
879 1040 => U1040,
880 1056 => U1056,
881 1072 => U1072,
882 1088 => U1088,
883 1104 => U1104,
884 1120 => U1120,
885 1136 => U1136,
886 1152 => U1152,
887 1168 => U1168,
888 1184 => U1184,
889 1200 => U1200,
890 1216 => U1216,
891 1232 => U1232,
892 1248 => U1248,
893 1264 => U1264,
894 1280 => U1280,
895 1296 => U1296,
896 1312 => U1312,
897 1328 => U1328,
898 1344 => U1344,
899 1360 => U1360,
900 1376 => U1376,
901 1392 => U1392,
902 1408 => U1408,
903 1424 => U1424,
904 1440 => U1440,
905 1456 => U1456,
906 1472 => U1472,
907 1488 => U1488,
908 1504 => U1504,
909 1520 => U1520,
910 1536 => U1536,
911 1552 => U1552,
912 1568 => U1568,
913 1584 => U1584,
914 1600 => U1600,
915 1616 => U1616,
916 1632 => U1632,
917 1648 => U1648,
918 1664 => U1664,
919 1680 => U1680,
920 1696 => U1696,
921 1712 => U1712,
922 1728 => U1728,
923 1744 => U1744,
924 1760 => U1760,
925 1776 => U1776,
926 1792 => U1792,
927 1808 => U1808,
928 1824 => U1824,
929 1840 => U1840,
930 1856 => U1856,
931 1872 => U1872,
932 1888 => U1888,
933 1904 => U1904,
934 1920 => U1920,
935 1936 => U1936,
936 1952 => U1952,
937 1968 => U1968,
938 1984 => U1984,
939 2000 => U2000,
940 2016 => U2016,
941 2032 => U2032,
942 2064 => U2064,
943 2080 => U2080,
944 2096 => U2096,
945 2112 => U2112,
946 2128 => U2128,
947 2144 => U2144,
948 2160 => U2160,
949 2176 => U2176,
950 2192 => U2192,
951 2208 => U2208,
952 2224 => U2224,
953 2240 => U2240,
954 2256 => U2256,
955 2272 => U2272,
956 2288 => U2288,
957 2304 => U2304,
958 2320 => U2320,
959 2336 => U2336,
960 2352 => U2352,
961 2368 => U2368,
962 2384 => U2384,
963 2400 => U2400,
964 2416 => U2416,
965 2432 => U2432,
966 2448 => U2448,
967 2464 => U2464,
968 2480 => U2480,
969 2496 => U2496,
970 2512 => U2512,
971 2528 => U2528,
972 2544 => U2544,
973 2560 => U2560,
974 2576 => U2576,
975 2592 => U2592,
976 2608 => U2608,
977 2624 => U2624,
978 2640 => U2640,
979 2656 => U2656,
980 2672 => U2672,
981 2688 => U2688,
982 2704 => U2704,
983 2720 => U2720,
984 2736 => U2736,
985 2752 => U2752,
986 2768 => U2768,
987 2784 => U2784,
988 2800 => U2800,
989 2816 => U2816,
990 2832 => U2832,
991 2848 => U2848,
992 2864 => U2864,
993 2880 => U2880,
994 2896 => U2896,
995 2912 => U2912,
996 2928 => U2928,
997 2944 => U2944,
998 2960 => U2960,
999 2976 => U2976,
1000 2992 => U2992,
1001 3008 => U3008,
1002 3024 => U3024,
1003 3040 => U3040,
1004 3056 => U3056,
1005 3072 => U3072,
1006 3088 => U3088,
1007 3104 => U3104,
1008 3120 => U3120,
1009 3136 => U3136,
1010 3152 => U3152,
1011 3168 => U3168,
1012 3184 => U3184,
1013 3200 => U3200,
1014 3216 => U3216,
1015 3232 => U3232,
1016 3248 => U3248,
1017 3264 => U3264,
1018 3280 => U3280,
1019 3296 => U3296,
1020 3312 => U3312,
1021 3328 => U3328,
1022 3344 => U3344,
1023 3360 => U3360,
1024 3376 => U3376,
1025 3392 => U3392,
1026 3408 => U3408,
1027 3424 => U3424,
1028 3440 => U3440,
1029 3456 => U3456,
1030 3472 => U3472,
1031 3488 => U3488,
1032 3504 => U3504,
1033 3520 => U3520,
1034 3536 => U3536,
1035 3552 => U3552,
1036 3568 => U3568,
1037 3584 => U3584,
1038 3600 => U3600,
1039 3616 => U3616,
1040 3632 => U3632,
1041 3648 => U3648,
1042 3664 => U3664,
1043 3680 => U3680,
1044 3696 => U3696,
1045 3712 => U3712,
1046 3728 => U3728,
1047 3744 => U3744,
1048 3760 => U3760,
1049 3776 => U3776,
1050 3792 => U3792,
1051 3808 => U3808,
1052 3824 => U3824,
1053 3840 => U3840,
1054 3856 => U3856,
1055 3872 => U3872,
1056 3888 => U3888,
1057 3904 => U3904,
1058 3920 => U3920,
1059 3936 => U3936,
1060 3952 => U3952,
1061 3968 => U3968,
1062 3984 => U3984,
1063 4000 => U4000,
1064 4016 => U4016,
1065 4032 => U4032,
1066 4048 => U4048,
1067 4064 => U4064,
1068 4080 => U4080,
1069 }
1070
1071 impl_array_sizes! {
1073 ml_dsa,
1074 2420 => U2420,
1075 3309 => U3309,
1076 4480 => U4480,
1077 4544 => U4544,
1078 4595 => U4595,
1079 4627 => U4627,
1080 4896 => U4896,
1081 }
1082
1083 impl_array_sizes! {
1085 slh_dsa,
1086 7856 => U7856,
1087 16224 => U16224,
1088 17088 => U17088,
1089 29792 => U29792,
1090 35664 => U35664,
1091 49856 => U49856,
1092 }
1093
1094 impl_array_sizes! {
1096 kemeleon,
1097 749 => U749,
1098 781 => U781,
1099 877 => U877,
1100 1124 => U1124,
1101 1156 => U1156,
1102 1252 => U1252,
1103 1498 => U1498,
1104 1530 => U1530,
1105 1658 => U1658,
1106 }
1107
1108 impl_array_sizes! {
1110 lms,
1111 2047 => U2047,
1112 2180 => U2180,
1113 4292 => U4292,
1114 8516 => U8516,
1115 }
1116
1117 impl_array_sizes! {
1119 frodokem,
1120 9616 => U9616,
1121 19888 => U19888,
1122 9720 => U9720,
1123 9752 => U9752,
1124 15632 => U15632,
1125 31296 => U31296,
1126 15744 => U15744,
1127 15792 => U15792,
1128 21520 => U21520,
1129 43088 => U43088,
1130 21632 => U21632,
1131 21696 => U21696,
1132 }
1133}