@@ -119,12 +119,13 @@ inline void memcpy(void *target, void const *source, std::size_t n) noexcept {
119
119
* @brief The concatenation of the `ascii_lowercase` and `ascii_uppercase`. This value is not locale-dependent.
120
120
* https://docs.python.org/3/library/string.html#string.ascii_letters
121
121
*/
122
- inline carray<52 > const &ascii_letters () noexcept {
123
- static carray<52 > const all = {
122
+ inline carray<53 > const &ascii_letters () noexcept {
123
+ static carray<53 > const all = {
124
124
//
125
- ' a' , ' b' , ' c' , ' d' , ' e' , ' f' , ' g' , ' h' , ' i' , ' j' , ' k' , ' l' , ' m' , ' n' , ' o' , ' p' , ' q' , ' r' ,
126
- ' s' , ' t' , ' u' , ' v' , ' w' , ' x' , ' y' , ' z' , ' A' , ' B' , ' C' , ' D' , ' E' , ' F' , ' G' , ' H' , ' I' , ' J' ,
127
- ' K' , ' L' , ' M' , ' N' , ' O' , ' P' , ' Q' , ' R' , ' S' , ' T' , ' U' , ' V' , ' W' , ' X' , ' Y' , ' Z' ,
125
+ ' a' , ' b' , ' c' , ' d' , ' e' , ' f' , ' g' , ' h' , ' i' , ' j' , ' k' , ' l' , ' m' , ' n' , ' o' , ' p' , ' q' , ' r' ,
126
+ ' s' , ' t' , ' u' , ' v' , ' w' , ' x' , ' y' , ' z' , ' A' , ' B' , ' C' , ' D' , ' E' , ' F' , ' G' , ' H' , ' I' , ' J' ,
127
+ ' K' , ' L' , ' M' , ' N' , ' O' , ' P' , ' Q' , ' R' , ' S' , ' T' , ' U' , ' V' , ' W' , ' X' , ' Y' , ' Z' , //
128
+ ' \0 ' ,
128
129
};
129
130
return all;
130
131
}
@@ -133,11 +134,12 @@ inline carray<52> const &ascii_letters() noexcept {
133
134
* @brief The lowercase letters "abcdefghijklmnopqrstuvwxyz". This value is not locale-dependent.
134
135
* https://docs.python.org/3/library/string.html#string.ascii_lowercase
135
136
*/
136
- inline carray<26 > const &ascii_lowercase () noexcept {
137
- static carray<26 > const all = {
137
+ inline carray<27 > const &ascii_lowercase () noexcept {
138
+ static carray<27 > const all = {
138
139
//
139
- ' a' , ' b' , ' c' , ' d' , ' e' , ' f' , ' g' , ' h' , ' i' , ' j' , ' k' , ' l' , ' m' ,
140
- ' n' , ' o' , ' p' , ' q' , ' r' , ' s' , ' t' , ' u' , ' v' , ' w' , ' x' , ' y' , ' z' ,
140
+ ' a' , ' b' , ' c' , ' d' , ' e' , ' f' , ' g' , ' h' , ' i' , ' j' , ' k' , ' l' , ' m' ,
141
+ ' n' , ' o' , ' p' , ' q' , ' r' , ' s' , ' t' , ' u' , ' v' , ' w' , ' x' , ' y' , ' z' , //
142
+ ' \0 ' ,
141
143
};
142
144
return all;
143
145
}
@@ -146,11 +148,12 @@ inline carray<26> const &ascii_lowercase() noexcept {
146
148
* @brief The uppercase letters "ABCDEFGHIJKLMNOPQRSTUVWXYZ". This value is not locale-dependent.
147
149
* https://docs.python.org/3/library/string.html#string.ascii_uppercase
148
150
*/
149
- inline carray<26 > const &ascii_uppercase () noexcept {
150
- static carray<26 > const all = {
151
+ inline carray<27 > const &ascii_uppercase () noexcept {
152
+ static carray<27 > const all = {
151
153
//
152
- ' A' , ' B' , ' C' , ' D' , ' E' , ' F' , ' G' , ' H' , ' I' , ' J' , ' K' , ' L' , ' M' ,
153
- ' N' , ' O' , ' P' , ' Q' , ' R' , ' S' , ' T' , ' U' , ' V' , ' W' , ' X' , ' Y' , ' Z' ,
154
+ ' A' , ' B' , ' C' , ' D' , ' E' , ' F' , ' G' , ' H' , ' I' , ' J' , ' K' , ' L' , ' M' ,
155
+ ' N' , ' O' , ' P' , ' Q' , ' R' , ' S' , ' T' , ' U' , ' V' , ' W' , ' X' , ' Y' , ' Z' , //
156
+ ' \0 ' ,
154
157
};
155
158
return all;
156
159
}
@@ -160,14 +163,15 @@ inline carray<26> const &ascii_uppercase() noexcept {
160
163
* A combination of `digits`, `ascii_letters`, `punctuation`, and `whitespace`.
161
164
* https://docs.python.org/3/library/string.html#string.printable
162
165
*/
163
- inline carray<100 > const &ascii_printables () noexcept {
164
- static carray<100 > const all = {
166
+ inline carray<101 > const &ascii_printables () noexcept {
167
+ static carray<101 > const all = {
165
168
//
166
- ' 0' , ' 1' , ' 2' , ' 3' , ' 4' , ' 5' , ' 6' , ' 7' , ' 8' , ' 9' , ' a' , ' b' , ' c' , ' d' , ' e' , ' f' , ' g' , ' h' , ' i' , ' j' ,
167
- ' k' , ' l' , ' m' , ' n' , ' o' , ' p' , ' q' , ' r' , ' s' , ' t' , ' u' , ' v' , ' w' , ' x' , ' y' , ' z' , ' A' , ' B' , ' C' , ' D' ,
168
- ' E' , ' F' , ' G' , ' H' , ' I' , ' J' , ' K' , ' L' , ' M' , ' N' , ' O' , ' P' , ' Q' , ' R' , ' S' , ' T' , ' U' , ' V' , ' W' , ' X' ,
169
- ' Y' , ' Z' , ' !' , ' "' , ' #' , ' $' , ' %' , ' &' , ' \' ' , ' (' , ' )' , ' *' , ' +' , ' ,' , ' -' , ' .' , ' /' , ' :' , ' ;' , ' <' ,
170
- ' =' , ' >' , ' ?' , ' @' , ' [' , ' \\ ' , ' ]' , ' ^' , ' _' , ' `' , ' {' , ' |' , ' }' , ' ~' , ' ' , ' \t ' , ' \n ' , ' \r ' , ' \f ' , ' \v ' ,
169
+ ' 0' , ' 1' , ' 2' , ' 3' , ' 4' , ' 5' , ' 6' , ' 7' , ' 8' , ' 9' , ' a' , ' b' , ' c' , ' d' , ' e' , ' f' , ' g' , ' h' , ' i' , ' j' ,
170
+ ' k' , ' l' , ' m' , ' n' , ' o' , ' p' , ' q' , ' r' , ' s' , ' t' , ' u' , ' v' , ' w' , ' x' , ' y' , ' z' , ' A' , ' B' , ' C' , ' D' ,
171
+ ' E' , ' F' , ' G' , ' H' , ' I' , ' J' , ' K' , ' L' , ' M' , ' N' , ' O' , ' P' , ' Q' , ' R' , ' S' , ' T' , ' U' , ' V' , ' W' , ' X' ,
172
+ ' Y' , ' Z' , ' !' , ' "' , ' #' , ' $' , ' %' , ' &' , ' \' ' , ' (' , ' )' , ' *' , ' +' , ' ,' , ' -' , ' .' , ' /' , ' :' , ' ;' , ' <' ,
173
+ ' =' , ' >' , ' ?' , ' @' , ' [' , ' \\ ' , ' ]' , ' ^' , ' _' , ' `' , ' {' , ' |' , ' }' , ' ~' , ' ' , ' \t ' , ' \n ' , ' \r ' , ' \f ' , ' \v ' , //
174
+ ' \0 ' ,
171
175
};
172
176
return all;
173
177
}
@@ -176,11 +180,12 @@ inline carray<100> const &ascii_printables() noexcept {
176
180
* @brief Non-printable ASCII control characters.
177
181
* Includes all codes from 0 to 31 and 127.
178
182
*/
179
- inline carray<33 > const &ascii_controls () noexcept {
180
- static carray<33 > const all = {
183
+ inline carray<34 > const &ascii_controls () noexcept {
184
+ static carray<34 > const all = {
181
185
//
182
- 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 ,
183
- 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 127 ,
186
+ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 ,
187
+ 17 , 18 , 19 , 20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 127 , //
188
+ ' \0 ' ,
184
189
};
185
190
return all;
186
191
}
@@ -189,20 +194,21 @@ inline carray<33> const &ascii_controls() noexcept {
189
194
* @brief The digits "0123456789".
190
195
* https://docs.python.org/3/library/string.html#string.digits
191
196
*/
192
- inline carray<10 > const &digits () noexcept {
193
- static carray<10 > const all = {' 0' , ' 1' , ' 2' , ' 3' , ' 4' , ' 5' , ' 6' , ' 7' , ' 8' , ' 9' };
197
+ inline carray<11 > const &digits () noexcept {
198
+ static carray<11 > const all = {' 0' , ' 1' , ' 2' , ' 3' , ' 4' , ' 5' , ' 6' , ' 7' , ' 8' , ' 9' , ' \0 ' };
194
199
return all;
195
200
}
196
201
197
202
/* *
198
203
* @brief The letters "0123456789abcdefABCDEF".
199
204
* https://docs.python.org/3/library/string.html#string.hexdigits
200
205
*/
201
- inline carray<22 > const &hexdigits () noexcept {
202
- static carray<22 > const all = {
206
+ inline carray<23 > const &hexdigits () noexcept {
207
+ static carray<23 > const all = {
203
208
//
204
- ' 0' , ' 1' , ' 2' , ' 3' , ' 4' , ' 5' , ' 6' , ' 7' , ' 8' , ' 9' , //
205
- ' a' , ' b' , ' c' , ' d' , ' e' , ' f' , ' A' , ' B' , ' C' , ' D' , ' E' , ' F' ,
209
+ ' 0' , ' 1' , ' 2' , ' 3' , ' 4' , ' 5' , ' 6' , ' 7' , ' 8' , ' 9' , //
210
+ ' a' , ' b' , ' c' , ' d' , ' e' , ' f' , ' A' , ' B' , ' C' , ' D' , ' E' , ' F' , //
211
+ ' \0 ' ,
206
212
};
207
213
return all;
208
214
}
@@ -211,8 +217,8 @@ inline carray<22> const &hexdigits() noexcept {
211
217
* @brief The letters "01234567".
212
218
* https://docs.python.org/3/library/string.html#string.octdigits
213
219
*/
214
- inline carray<8 > const &octdigits () noexcept {
215
- static carray<8 > const all = {' 0' , ' 1' , ' 2' , ' 3' , ' 4' , ' 5' , ' 6' , ' 7' };
220
+ inline carray<9 > const &octdigits () noexcept {
221
+ static carray<9 > const all = {' 0' , ' 1' , ' 2' , ' 3' , ' 4' , ' 5' , ' 6' , ' 7' , ' \0 ' };
216
222
return all;
217
223
}
218
224
@@ -221,11 +227,12 @@ inline carray<8> const &octdigits() noexcept {
221
227
* !"#$%&'()*+,-./:;<=>?@[\]^_`{|}~.
222
228
* https://docs.python.org/3/library/string.html#string.punctuation
223
229
*/
224
- inline carray<32 > const &punctuation () noexcept {
225
- static carray<32 > const all = {
230
+ inline carray<33 > const &punctuation () noexcept {
231
+ static carray<33 > const all = {
226
232
//
227
- ' !' , ' "' , ' #' , ' $' , ' %' , ' &' , ' \' ' , ' (' , ' )' , ' *' , ' +' , ' ,' , ' -' , ' .' , ' /' , ' :' ,
228
- ' ;' , ' <' , ' =' , ' >' , ' ?' , ' @' , ' [' , ' \\ ' , ' ]' , ' ^' , ' _' , ' `' , ' {' , ' |' , ' }' , ' ~' ,
233
+ ' !' , ' "' , ' #' , ' $' , ' %' , ' &' , ' \' ' , ' (' , ' )' , ' *' , ' +' , ' ,' , ' -' , ' .' , ' /' , ' :' ,
234
+ ' ;' , ' <' , ' =' , ' >' , ' ?' , ' @' , ' [' , ' \\ ' , ' ]' , ' ^' , ' _' , ' `' , ' {' , ' |' , ' }' , ' ~' , //
235
+ ' \0 ' ,
229
236
};
230
237
return all;
231
238
}
@@ -235,29 +242,30 @@ inline carray<32> const &punctuation() noexcept {
235
242
* This includes space, tab, linefeed, return, formfeed, and vertical tab.
236
243
* https://docs.python.org/3/library/string.html#string.whitespace
237
244
*/
238
- inline carray<6 > const &whitespaces () noexcept {
239
- static carray<6 > const all = {' ' , ' \t ' , ' \n ' , ' \r ' , ' \f ' , ' \v ' };
245
+ inline carray<7 > const &whitespaces () noexcept {
246
+ static carray<7 > const all = {' ' , ' \t ' , ' \n ' , ' \r ' , ' \f ' , ' \v ' , ' \0 ' };
240
247
return all;
241
248
}
242
249
243
250
/* *
244
251
* @brief ASCII characters that are considered line delimiters.
245
252
* https://docs.python.org/3/library/stdtypes.html#str.splitlines
246
253
*/
247
- inline carray<8 > const &newlines () noexcept {
248
- static carray<8 > const all = {' \n ' , ' \r ' , ' \f ' , ' \v ' , ' \x1C ' , ' \x1D ' , ' \x1E ' , ' \x85 ' };
254
+ inline carray<9 > const &newlines () noexcept {
255
+ static carray<9 > const all = {' \n ' , ' \r ' , ' \f ' , ' \v ' , ' \x1C ' , ' \x1D ' , ' \x1E ' , ' \x85 ' , ' \0 ' };
249
256
return all;
250
257
}
251
258
252
259
/* *
253
260
* @brief ASCII characters forming the BASE64 encoding alphabet.
254
261
*/
255
- inline carray<64 > const &base64 () noexcept {
256
- static carray<64 > const all = {
262
+ inline carray<65 > const &base64 () noexcept {
263
+ static carray<65 > const all = {
257
264
//
258
- ' a' , ' b' , ' c' , ' d' , ' e' , ' f' , ' g' , ' h' , ' i' , ' j' , ' k' , ' l' , ' m' , ' n' , ' o' , ' p' , ' q' , ' r' , ' s' , ' t' , ' u' , ' v' ,
259
- ' w' , ' x' , ' y' , ' z' , ' A' , ' B' , ' C' , ' D' , ' E' , ' F' , ' G' , ' H' , ' I' , ' J' , ' K' , ' L' , ' M' , ' N' , ' O' , ' P' , ' Q' , ' R' ,
260
- ' S' , ' T' , ' U' , ' V' , ' W' , ' X' , ' Y' , ' Z' , ' 0' , ' 1' , ' 2' , ' 3' , ' 4' , ' 5' , ' 6' , ' 7' , ' 8' , ' 9' , ' +' , ' /' ,
265
+ ' a' , ' b' , ' c' , ' d' , ' e' , ' f' , ' g' , ' h' , ' i' , ' j' , ' k' , ' l' , ' m' , ' n' , ' o' , ' p' , ' q' , ' r' , ' s' , ' t' , ' u' , ' v' ,
266
+ ' w' , ' x' , ' y' , ' z' , ' A' , ' B' , ' C' , ' D' , ' E' , ' F' , ' G' , ' H' , ' I' , ' J' , ' K' , ' L' , ' M' , ' N' , ' O' , ' P' , ' Q' , ' R' ,
267
+ ' S' , ' T' , ' U' , ' V' , ' W' , ' X' , ' Y' , ' Z' , ' 0' , ' 1' , ' 2' , ' 3' , ' 4' , ' 5' , ' 6' , ' 7' , ' 8' , ' 9' , ' +' , ' /' , //
268
+ ' \0 ' ,
261
269
};
262
270
return all;
263
271
}
0 commit comments