crypto_bigint/uint/
extra_sizes.rs

1//! Support for additional integer sizes beyond the core set which is defined
2//! in the toplevel module.
3//!
4//! These are feature-gated to keep compile times down for applications which
5//! do not need them.
6// TODO(tarcieri): switch to a fully const generic implementation using `generic_const_exprs`
7
8use super::*;
9
10impl_uint_aliases! {
11    (U1088, 1088, "1088-bit"),
12    (U1152, 1152, "1152-bit"),
13    (U1216, 1216, "1216-bit"),
14    (U1344, 1344, "1344-bit"),
15    (U1408, 1408, "1408-bit"),
16    (U1472, 1472, "1472-bit"),
17    (U1600, 1600, "1600-bit"),
18    (U1664, 1664, "1664-bit"),
19    (U1728, 1728, "1728-bit"),
20    (U1856, 1856, "1856-bit"),
21    (U1920, 1920, "1920-bit"),
22    (U1984, 1984, "1984-bit"),
23    (U2112, 2112, "2112-bit"),
24    (U2176, 2176, "2176-bit"),
25    (U2240, 2240, "2240-bit"),
26    (U2304, 2304, "2304-bit"),
27    (U2368, 2368, "2368-bit"),
28    (U2432, 2432, "2432-bit"),
29    (U2496, 2496, "2496-bit"),
30    (U2560, 2560, "2560-bit"),
31    (U2624, 2624, "2624-bit"),
32    (U2688, 2688, "2688-bit"),
33    (U2752, 2752, "2752-bit"),
34    (U2816, 2816, "2816-bit"),
35    (U2880, 2880, "2880-bit"),
36    (U2944, 2944, "2944-bit"),
37    (U3008, 3008, "3008-bit"),
38    (U3136, 3136, "3136-bit"),
39    (U3200, 3200, "3200-bit"),
40    (U3264, 3264, "3264-bit"),
41    (U3328, 3328, "3328-bit"),
42    (U3392, 3392, "3392-bit"),
43    (U3456, 3456, "3456-bit"),
44    (U3520, 3520, "3520-bit"),
45    (U3648, 3648, "3648-bit"),
46    (U3712, 3712, "3712-bit"),
47    (U3776, 3776, "3776-bit"),
48    (U3840, 3840, "3840-bit"),
49    (U3904, 3904, "3904-bit"),
50    (U3968, 3968, "3968-bit"),
51    (U4032, 4032, "4032-bit"),
52    (U4160, 4160, "4160-bit"),
53    (U4288, 4288, "4288-bit"),
54    (U4416, 4416, "4416-bit"),
55    (U4480, 4480, "4480-bit"),
56    (U4544, 4544, "4544-bit"),
57    (U4608, 4608, "4608-bit"),
58    (U4672, 4672, "4672-bit"),
59    (U4736, 4736, "4736-bit"),
60    (U4800, 4800, "4800-bit"),
61    (U4864, 4864, "4864-bit"),
62    (U4928, 4928, "4928-bit"),
63    (U4992, 4992, "4992-bit"),
64    (U5056, 5056, "5056-bit"),
65    (U5120, 5120, "5120-bit"),
66    (U5184, 5184, "5184-bit"),
67    (U5248, 5248, "5248-bit"),
68    (U5312, 5312, "5312-bit"),
69    (U5376, 5376, "5376-bit"),
70    (U5440, 5440, "5440-bit"),
71    (U5504, 5504, "5504-bit"),
72    (U5568, 5568, "5568-bit"),
73    (U5632, 5632, "5632-bit"),
74    (U5696, 5696, "5696-bit"),
75    (U5760, 5760, "5760-bit"),
76    (U5824, 5824, "5824-bit"),
77    (U5888, 5888, "5888-bit"),
78    (U5952, 5952, "5952-bit"),
79    (U6016, 6016, "6016-bit"),
80    (U6080, 6080, "6080-bit"),
81    (U6208, 6208, "6208-bit"),
82    (U6272, 6272, "6272-bit"),
83    (U6336, 6336, "6336-bit"),
84    (U6400, 6400, "6400-bit"),
85    (U6464, 6464, "6464-bit"),
86    (U6528, 6528, "6528-bit"),
87    (U6592, 6592, "6592-bit"),
88    (U6656, 6656, "6656-bit"),
89    (U6720, 6720, "6720-bit"),
90    (U6784, 6784, "6784-bit"),
91    (U6848, 6848, "6848-bit"),
92    (U6912, 6912, "6912-bit"),
93    (U6976, 6976, "6976-bit"),
94    (U7040, 7040, "7040-bit"),
95    (U7104, 7104, "7104-bit"),
96    (U7168, 7168, "7168-bit"),
97    (U7232, 7232, "7232-bit"),
98    (U7296, 7296, "7296-bit"),
99    (U7360, 7360, "7360-bit"),
100    (U7424, 7424, "7424-bit"),
101    (U7488, 7488, "7488-bit"),
102    (U7552, 7552, "7552-bit"),
103    (U7616, 7616, "7616-bit"),
104    (U7680, 7680, "7680-bit"),
105    (U7744, 7744, "7744-bit"),
106    (U7808, 7808, "7808-bit"),
107    (U7872, 7872, "7872-bit"),
108    (U7936, 7936, "7936-bit"),
109    (U8000, 8000, "8000-bit"),
110    (U8064, 8064, "8064-bit"),
111    (U8128, 8128, "8128-bit")
112}
113
114impl_uint_concat_split_even! {
115    U1152,
116    U1408,
117    U1664,
118    U1920,
119    U2176,
120    U2304,
121    U2432,
122    U2560,
123    U2688,
124    U2816,
125    U2944,
126    U3200,
127    U3328,
128    U3456,
129    U3712,
130    U3840,
131    U3968,
132    U4480,
133    U4608,
134    U4736,
135    U4864,
136    U4992,
137    U5120,
138    U5248,
139    U5376,
140    U5504,
141    U5632,
142    U5760,
143    U5888,
144    U6016,
145    U6272,
146    U6400,
147    U6528,
148    U6656,
149    U6784,
150    U6912,
151    U7040,
152    U7168,
153    U7296,
154    U7424,
155    U7552,
156    U7680,
157    U7808,
158    U7936,
159    U8064,
160}