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