Skip to content

Commit 7c4baed

Browse files
Dynamically choose best chunk size
Try chunk sizes between 1 and 64, selecting the one which minimizes the number of bytes used. 16, the previous constant, turned out to be a rather good choice, with 5/9 of the datasets still using it. Alphabetic : 3036 bytes (- 19 bytes) Case_Ignorable : 2136 bytes Cased : 934 bytes Cc : 32 bytes (- 11 bytes) Grapheme_Extend: 1774 bytes Lowercase : 985 bytes N : 1225 bytes (- 41 bytes) Uppercase : 934 bytes White_Space : 97 bytes (- 43 bytes) Total table sizes: 11153 bytes (-114 bytes)
1 parent 903f67d commit 7c4baed

File tree

3 files changed

+134
-138
lines changed

3 files changed

+134
-138
lines changed

src/libcore/unicode/mod.rs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,16 @@ pub use unicode_data::uppercase::lookup as Uppercase;
3434
pub use unicode_data::white_space::lookup as White_Space;
3535

3636
#[inline(always)]
37-
fn range_search<const N: usize, const N1: usize, const N2: usize>(
37+
fn range_search<const N: usize, const CHUNK_SIZE: usize, const N1: usize, const N2: usize>(
3838
needle: u32,
3939
chunk_idx_map: &[u8; N],
4040
(last_chunk_idx, last_chunk_mapping): (u16, u8),
41-
bitset_chunk_idx: &[[u8; 16]; N1],
41+
bitset_chunk_idx: &[[u8; CHUNK_SIZE]; N1],
4242
bitset: &[u64; N2],
4343
) -> bool {
4444
let bucket_idx = (needle / 64) as usize;
45-
let chunk_map_idx = bucket_idx / 16;
46-
let chunk_piece = bucket_idx % 16;
45+
let chunk_map_idx = bucket_idx / CHUNK_SIZE;
46+
let chunk_piece = bucket_idx % CHUNK_SIZE;
4747
let chunk_idx = if chunk_map_idx >= N {
4848
if chunk_map_idx == last_chunk_idx as usize {
4949
last_chunk_mapping

src/libcore/unicode/unicode_data.rs

Lines changed: 91 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -5,69 +5,63 @@ pub const UNICODE_VERSION: (u32, u32, u32) = (13, 0, 0);
55

66
#[rustfmt::skip]
77
pub mod alphabetic {
8-
static BITSET_LAST_CHUNK_MAP: (u16, u8) = (196, 44);
9-
static BITSET_CHUNKS_MAP: [u8; 196] = [
10-
6, 32, 10, 18, 19, 23, 21, 12, 7, 5, 0, 20, 14, 50, 50, 50, 50, 50, 50, 37, 50, 50, 50, 50,
11-
50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 49, 50, 30, 8, 50, 50, 50, 50,
12-
50, 50, 50, 50, 50, 50, 46, 0, 0, 0, 0, 0, 0, 0, 0, 4, 36, 17, 31, 16, 25, 24, 26, 13, 15,
13-
45, 27, 0, 0, 50, 11, 0, 0, 0, 40, 0, 0, 0, 0, 0, 0, 0, 0, 39, 1, 50, 50, 50, 50, 50, 48,
14-
50, 34, 0, 0, 0, 0, 0, 0, 0, 0, 35, 0, 0, 28, 0, 0, 0, 0, 0, 29, 0, 0, 9, 0, 33, 2, 3, 0, 0,
15-
0, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50,
16-
50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 50, 42, 50, 50, 50,
17-
43, 22, 50, 50, 50, 50, 41, 50, 50, 50, 50, 50, 50, 47, 0, 0, 0, 38, 0, 50, 50, 50, 50,
8+
static BITSET_LAST_CHUNK_MAP: (u16, u8) = (393, 67);
9+
static BITSET_CHUNKS_MAP: [u8; 393] = [
10+
8, 60, 56, 38, 16, 33, 34, 24, 35, 50, 41, 49, 37, 39, 20, 66, 9, 0, 6, 0, 0, 0, 36, 18,
11+
26, 0, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 70, 74, 74, 74, 74, 74, 74, 74, 74,
12+
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
13+
74, 74, 74, 74, 74, 74, 74, 74, 74, 73, 74, 74, 52, 15, 13, 21, 74, 74, 74, 74, 74, 74, 74,
14+
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 69, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
15+
0, 0, 0, 0, 0, 2, 48, 65, 10, 32, 7, 53, 64, 31, 19, 44, 5, 42, 27, 45, 30, 22, 29, 28, 4,
16+
74, 68, 46, 0, 0, 0, 0, 0, 74, 74, 17, 0, 0, 0, 0, 0, 0, 0, 74, 43, 0, 0, 0, 0, 0, 0, 0, 0,
17+
0, 0, 0, 0, 0, 0, 0, 0, 74, 23, 0, 11, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 72, 74,
18+
74, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 62, 61, 0, 0, 0, 0, 47, 0, 0, 0,
19+
0, 0, 0, 0, 0, 0, 0, 0, 51, 55, 0, 0, 0, 0, 14, 3, 0, 0, 57, 0, 0, 25, 1, 0, 0, 0, 0, 0, 0,
20+
0, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
21+
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
22+
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
23+
74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 59, 74, 74, 74, 74, 74, 74, 74,
24+
63, 40, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74, 54, 74, 74, 74, 74, 74, 74, 74, 74, 74, 74,
25+
74, 74, 74, 71, 0, 0, 0, 0, 0, 0, 74, 12, 0, 0, 74, 74, 74, 74, 74, 74, 74, 74, 74,
1826
];
19-
static BITSET_INDEX_CHUNKS: [[u8; 16]; 51] = [
20-
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
21-
[0, 0, 0, 0, 0, 0, 0, 0, 0, 254, 0, 0, 254, 247, 39, 68],
22-
[0, 0, 0, 0, 0, 0, 0, 0, 111, 135, 113, 0, 0, 0, 0, 0],
23-
[0, 0, 0, 0, 195, 205, 10, 0, 0, 0, 0, 0, 0, 0, 0, 0],
24-
[0, 0, 0, 0, 254, 254, 254, 254, 254, 210, 254, 25, 136, 251, 71, 243],
25-
[0, 0, 182, 52, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
26-
[0, 107, 103, 180, 254, 254, 254, 254, 254, 254, 254, 61, 0, 155, 222, 181],
27-
[0, 148, 30, 0, 172, 226, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0],
28-
[48, 80, 254, 169, 206, 123, 189, 139, 95, 179, 145, 86, 211, 204, 254, 56],
29-
[53, 0, 0, 0, 129, 17, 0, 0, 0, 0, 0, 58, 0, 0, 0, 0],
30-
[59, 54, 185, 203, 171, 191, 161, 117, 158, 87, 164, 118, 162, 67, 159, 23],
31-
[62, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
32-
[95, 131, 168, 105, 254, 254, 254, 82, 254, 254, 254, 254, 236, 130, 137, 120],
33-
[101, 0, 225, 146, 151, 2, 217, 45, 144, 246, 32, 101, 0, 0, 0, 0],
34-
[119, 253, 224, 175, 193, 254, 227, 195, 0, 0, 0, 0, 0, 0, 0, 0],
35-
[143, 190, 91, 0, 153, 218, 24, 0, 0, 0, 0, 92, 0, 0, 66, 0],
36-
[150, 94, 37, 85, 102, 0, 157, 0, 88, 122, 31, 46, 89, 74, 20, 0],
37-
[154, 34, 254, 110, 0, 84, 0, 0, 0, 0, 233, 19, 216, 108, 237, 21],
38-
[166, 42, 165, 72, 167, 177, 126, 76, 109, 16, 127, 38, 1, 192, 124, 0],
39-
[176, 246, 234, 174, 254, 254, 254, 254, 254, 235, 140, 241, 240, 26, 228, 128],
40-
[213, 239, 254, 77, 209, 64, 142, 238, 63, 0, 0, 0, 0, 0, 0, 0],
41-
[225, 101, 207, 89, 98, 81, 208, 10, 232, 83, 147, 1, 188, 13, 178, 70],
42-
[237, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254],
43-
[253, 254, 254, 254, 254, 254, 254, 254, 254, 214, 231, 99, 79, 78, 183, 27],
44-
[254, 6, 100, 50, 75, 90, 254, 28, 134, 0, 202, 51, 163, 43, 0, 0],
45-
[254, 9, 75, 75, 49, 0, 0, 0, 0, 0, 69, 0, 199, 6, 195, 93],
46-
[254, 41, 254, 8, 0, 0, 141, 33, 145, 4, 97, 0, 55, 0, 0, 0],
47-
[254, 62, 254, 254, 254, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
48-
[254, 121, 36, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
49-
[254, 242, 170, 252, 138, 245, 254, 254, 254, 254, 220, 173, 186, 212, 219, 14],
50-
[254, 254, 15, 132, 254, 254, 254, 254, 57, 149, 254, 65, 223, 254, 249, 187],
51-
[254, 254, 196, 114, 201, 44, 0, 0, 254, 254, 254, 254, 95, 47, 0, 0],
52-
[254, 254, 250, 254, 194, 229, 156, 73, 230, 215, 254, 152, 246, 248, 71, 104],
53-
[254, 254, 254, 5, 254, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
54-
[254, 254, 254, 22, 9, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
55-
[254, 254, 254, 254, 37, 200, 254, 254, 254, 254, 254, 116, 0, 0, 0, 0],
56-
[254, 254, 254, 254, 133, 246, 244, 112, 0, 184, 254, 125, 106, 221, 145, 29],
57-
[254, 254, 254, 254, 254, 254, 254, 0, 254, 254, 254, 254, 254, 254, 254, 254],
58-
[254, 254, 254, 254, 254, 254, 254, 254, 35, 0, 0, 0, 0, 0, 0, 0],
59-
[254, 254, 254, 254, 254, 254, 254, 254, 101, 37, 0, 60, 65, 160, 18, 0],
60-
[254, 254, 254, 254, 254, 254, 254, 254, 254, 7, 0, 0, 0, 0, 0, 0],
61-
[254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 197, 254, 254, 254, 254, 254],
62-
[254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 35, 254, 254, 254, 254],
63-
[254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 84, 254, 254, 254],
64-
[254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 11, 0, 0],
65-
[254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 25, 0],
66-
[254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 198, 115],
67-
[254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 40],
68-
[254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 96],
69-
[254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 125],
70-
[254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254, 254],
27+
static BITSET_INDEX_CHUNKS: [[u8; 8]; 75] = [
28+
[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 195, 205, 10, 0], [0, 0, 0, 0, 254, 254, 254, 254],
29+
[0, 0, 0, 58, 0, 0, 0, 0], [0, 0, 0, 92, 0, 0, 66, 0], [0, 0, 69, 0, 199, 6, 195, 93],
30+
[0, 0, 182, 52, 0, 0, 0, 0], [0, 0, 233, 19, 216, 108, 237, 21],
31+
[0, 107, 103, 180, 254, 254, 254, 254], [0, 148, 30, 0, 172, 226, 9, 0],
32+
[0, 184, 254, 125, 106, 221, 145, 29], [0, 254, 0, 0, 254, 247, 39, 68],
33+
[35, 0, 0, 0, 0, 0, 0, 0], [48, 80, 254, 169, 206, 123, 189, 139],
34+
[53, 0, 0, 0, 129, 17, 0, 0], [57, 149, 254, 65, 223, 254, 249, 187],
35+
[59, 54, 185, 203, 171, 191, 161, 117], [62, 0, 0, 0, 0, 0, 0, 0],
36+
[63, 0, 0, 0, 0, 0, 0, 0], [88, 122, 31, 46, 89, 74, 20, 0],
37+
[95, 131, 168, 105, 254, 254, 254, 82], [95, 179, 145, 86, 211, 204, 254, 56],
38+
[101, 0, 225, 146, 151, 2, 217, 45], [101, 37, 0, 60, 65, 160, 18, 0],
39+
[109, 16, 127, 38, 1, 192, 124, 0], [111, 135, 113, 0, 0, 0, 0, 0],
40+
[119, 253, 224, 175, 193, 254, 227, 195], [134, 0, 202, 51, 163, 43, 0, 0],
41+
[143, 190, 91, 0, 153, 218, 24, 0], [144, 246, 32, 101, 0, 0, 0, 0],
42+
[145, 4, 97, 0, 55, 0, 0, 0], [150, 94, 37, 85, 102, 0, 157, 0],
43+
[154, 34, 254, 110, 0, 84, 0, 0], [158, 87, 164, 118, 162, 67, 159, 23],
44+
[166, 42, 165, 72, 167, 177, 126, 76], [176, 246, 234, 174, 254, 254, 254, 254],
45+
[213, 239, 254, 77, 209, 64, 142, 238], [225, 101, 207, 89, 98, 81, 208, 10],
46+
[230, 215, 254, 152, 246, 248, 71, 104], [232, 83, 147, 1, 188, 13, 178, 70],
47+
[237, 254, 254, 254, 254, 254, 254, 254], [253, 254, 254, 254, 254, 254, 254, 254],
48+
[254, 6, 100, 50, 75, 90, 254, 28], [254, 7, 0, 0, 0, 0, 0, 0],
49+
[254, 9, 75, 75, 49, 0, 0, 0], [254, 41, 254, 8, 0, 0, 141, 33],
50+
[254, 62, 254, 254, 254, 3, 0, 0], [254, 121, 36, 0, 0, 0, 0, 0],
51+
[254, 210, 254, 25, 136, 251, 71, 243], [254, 214, 231, 99, 79, 78, 183, 27],
52+
[254, 235, 140, 241, 240, 26, 228, 128], [254, 242, 170, 252, 138, 245, 254, 254],
53+
[254, 254, 15, 132, 254, 254, 254, 254], [254, 254, 196, 114, 201, 44, 0, 0],
54+
[254, 254, 197, 254, 254, 254, 254, 254], [254, 254, 220, 173, 186, 212, 219, 14],
55+
[254, 254, 250, 254, 194, 229, 156, 73], [254, 254, 254, 5, 254, 12, 0, 0],
56+
[254, 254, 254, 22, 9, 0, 0, 0], [254, 254, 254, 35, 254, 254, 254, 254],
57+
[254, 254, 254, 61, 0, 155, 222, 181], [254, 254, 254, 116, 0, 0, 0, 0],
58+
[254, 254, 254, 254, 37, 200, 254, 254], [254, 254, 254, 254, 84, 254, 254, 254],
59+
[254, 254, 254, 254, 95, 47, 0, 0], [254, 254, 254, 254, 133, 246, 244, 112],
60+
[254, 254, 254, 254, 236, 130, 137, 120], [254, 254, 254, 254, 254, 11, 0, 0],
61+
[254, 254, 254, 254, 254, 254, 25, 0], [254, 254, 254, 254, 254, 254, 198, 115],
62+
[254, 254, 254, 254, 254, 254, 254, 0], [254, 254, 254, 254, 254, 254, 254, 40],
63+
[254, 254, 254, 254, 254, 254, 254, 96], [254, 254, 254, 254, 254, 254, 254, 125],
64+
[254, 254, 254, 254, 254, 254, 254, 254],
7165
];
7266
static BITSET: [u64; 255] = [
7367
0, 1, 7, 15, 17, 31, 63, 127, 179, 511, 1023, 2047, 2191, 4079, 4087, 8191, 8319, 16384,
@@ -297,8 +291,8 @@ pub mod cc {
297291
static BITSET_LAST_CHUNK_MAP: (u16, u8) = (0, 0);
298292
static BITSET_CHUNKS_MAP: [u8; 0] = [
299293
];
300-
static BITSET_INDEX_CHUNKS: [[u8; 16]; 1] = [
301-
[1, 2, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
294+
static BITSET_INDEX_CHUNKS: [[u8; 5]; 1] = [
295+
[1, 2, 1, 0, 0],
302296
];
303297
static BITSET: [u64; 3] = [
304298
0, 4294967295, 9223372036854775808,
@@ -460,49 +454,35 @@ pub mod lowercase {
460454

461455
#[rustfmt::skip]
462456
pub mod n {
463-
static BITSET_LAST_CHUNK_MAP: (u16, u8) = (127, 0);
464-
static BITSET_CHUNKS_MAP: [u8; 127] = [
465-
31, 8, 11, 25, 19, 4, 29, 21, 24, 28, 0, 16, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
466-
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
467-
0, 0, 0, 0, 0, 0, 3, 13, 18, 26, 17, 23, 20, 15, 22, 0, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
468-
0, 0, 0, 0, 0, 7, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
469-
5, 2, 0, 0, 10, 0, 14, 27, 12, 0, 1,
457+
static BITSET_LAST_CHUNK_MAP: (u16, u8) = (254, 0);
458+
static BITSET_CHUNKS_MAP: [u8; 254] = [
459+
44, 0, 0, 29, 5, 31, 35, 26, 22, 6, 0, 12, 40, 20, 27, 0, 33, 0, 39, 7, 0, 0, 17, 0, 45,
460+
42, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
461+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 41, 43,
462+
23, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
463+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 10, 16, 21, 0, 37, 34, 18, 36, 32, 15, 25, 24, 13, 0,
464+
30, 1, 0, 0, 46, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
465+
0, 0, 0, 0, 0, 0, 0, 0, 0, 28, 0, 19, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
466+
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
467+
14, 0, 3, 0, 0, 0, 0, 4, 15, 0, 0, 11, 0, 38, 0, 8, 0, 0, 0, 0, 2,
470468
];
471-
static BITSET_INDEX_CHUNKS: [[u8; 16]; 34] = [
472-
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
473-
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 47],
474-
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72],
475-
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 15, 0, 0, 0],
476-
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 33, 0, 0, 0, 49],
477-
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 36, 0, 43, 0, 0],
478-
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 14, 0, 0, 0, 0, 0],
479-
[0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 0, 22, 0, 0],
480-
[0, 0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 47, 0, 0, 0, 2],
481-
[0, 0, 0, 0, 0, 0, 0, 0, 25, 0, 0, 31, 0, 0, 0, 0],
482-
[0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 47, 0, 0, 0, 0],
483-
[0, 0, 0, 0, 0, 31, 0, 45, 0, 31, 0, 31, 0, 41, 0, 34],
484-
[0, 0, 0, 0, 6, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
485-
[0, 0, 0, 0, 37, 44, 4, 0, 0, 0, 0, 52, 23, 3, 0, 13],
486-
[0, 0, 0, 7, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
487-
[0, 0, 0, 35, 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
488-
[0, 0, 0, 54, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
489-
[0, 0, 0, 62, 47, 0, 0, 0, 0, 60, 0, 0, 24, 10, 0, 5],
490-
[0, 0, 25, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
491-
[0, 2, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 53, 0, 0],
492-
[0, 15, 0, 15, 0, 0, 0, 0, 0, 15, 0, 2, 51, 0, 0, 0],
493-
[0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
494-
[0, 26, 0, 0, 0, 15, 25, 0, 0, 0, 0, 0, 0, 0, 0, 11],
495-
[0, 32, 0, 47, 65, 0, 0, 39, 0, 0, 0, 47, 0, 0, 0, 0],
496-
[0, 46, 2, 0, 0, 71, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0],
497-
[0, 59, 0, 31, 0, 42, 0, 31, 0, 15, 0, 15, 36, 0, 0, 0],
498-
[0, 63, 30, 61, 18, 0, 55, 70, 0, 57, 20, 28, 0, 64, 29, 0],
499-
[0, 66, 38, 0, 56, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
500-
[0, 69, 19, 68, 0, 0, 0, 0, 0, 0, 0, 0, 0, 65, 9, 0],
501-
[15, 0, 0, 0, 0, 8, 0, 17, 0, 0, 16, 0, 0, 15, 47, 0],
502-
[40, 0, 0, 15, 2, 0, 0, 48, 0, 15, 0, 0, 0, 0, 0, 47],
503-
[47, 0, 58, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
504-
[50, 0, 0, 0, 0, 0, 12, 0, 25, 21, 67, 0, 0, 0, 0, 0],
505-
[73, 27, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
469+
static BITSET_INDEX_CHUNKS: [[u8; 8]; 47] = [
470+
[0, 0, 0, 0, 0, 0, 0, 0], [0, 0, 0, 0, 0, 0, 0, 11], [0, 0, 0, 0, 0, 0, 0, 47],
471+
[0, 0, 0, 0, 0, 0, 0, 72], [0, 0, 0, 0, 0, 2, 0, 0], [0, 0, 0, 0, 0, 31, 0, 45],
472+
[0, 0, 0, 0, 0, 53, 0, 0], [0, 0, 0, 0, 0, 65, 9, 0], [0, 0, 0, 0, 6, 0, 0, 0],
473+
[0, 0, 0, 0, 15, 0, 0, 0], [0, 0, 0, 0, 37, 44, 4, 0], [0, 0, 0, 7, 0, 15, 0, 0],
474+
[0, 0, 0, 33, 0, 0, 0, 49], [0, 0, 0, 35, 0, 15, 0, 0], [0, 0, 0, 36, 0, 43, 0, 0],
475+
[0, 0, 0, 47, 0, 0, 0, 0], [0, 0, 0, 52, 23, 3, 0, 13], [0, 0, 0, 54, 0, 0, 0, 0],
476+
[0, 0, 0, 62, 47, 0, 0, 0], [0, 0, 14, 0, 0, 0, 0, 0], [0, 0, 16, 0, 0, 15, 47, 0],
477+
[0, 0, 25, 0, 0, 0, 0, 0], [0, 2, 15, 0, 0, 0, 0, 0], [0, 15, 0, 0, 0, 0, 0, 47],
478+
[0, 15, 0, 2, 51, 0, 0, 0], [0, 15, 0, 15, 0, 0, 0, 0], [0, 15, 0, 15, 36, 0, 0, 0],
479+
[0, 16, 0, 0, 0, 0, 0, 0], [0, 25, 0, 0, 0, 22, 0, 0], [0, 25, 0, 47, 0, 0, 0, 2],
480+
[0, 26, 0, 0, 0, 15, 25, 0], [0, 31, 0, 31, 0, 41, 0, 34], [0, 32, 0, 47, 65, 0, 0, 39],
481+
[0, 46, 2, 0, 0, 71, 1, 0], [0, 57, 20, 28, 0, 64, 29, 0], [0, 59, 0, 31, 0, 42, 0, 31],
482+
[0, 60, 0, 0, 24, 10, 0, 5], [0, 63, 30, 61, 18, 0, 55, 70], [0, 66, 38, 0, 56, 0, 0, 0],
483+
[0, 69, 19, 68, 0, 0, 0, 0], [15, 0, 0, 0, 0, 8, 0, 17], [25, 0, 0, 31, 0, 0, 0, 0],
484+
[25, 21, 67, 0, 0, 0, 0, 0], [40, 0, 0, 15, 2, 0, 0, 48], [47, 0, 58, 0, 0, 0, 0, 0],
485+
[50, 0, 0, 0, 0, 0, 12, 0], [73, 27, 0, 0, 0, 0, 0, 0],
506486
];
507487
static BITSET: [u64; 74] = [
508488
0, 999, 1023, 1026, 3072, 4064, 8191, 65408, 65472, 1048575, 1966080, 2097151, 3932160,
@@ -591,16 +571,12 @@ pub mod uppercase {
591571

592572
#[rustfmt::skip]
593573
pub mod white_space {
594-
static BITSET_LAST_CHUNK_MAP: (u16, u8) = (12, 2);
595-
static BITSET_CHUNKS_MAP: [u8; 9] = [
596-
3, 0, 0, 0, 0, 1, 0, 0, 4,
574+
static BITSET_LAST_CHUNK_MAP: (u16, u8) = (32, 2);
575+
static BITSET_CHUNKS_MAP: [u8; 22] = [
576+
3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 1,
597577
];
598-
static BITSET_INDEX_CHUNKS: [[u8; 16]; 5] = [
599-
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
600-
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0],
601-
[1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
602-
[4, 0, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
603-
[5, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
578+
static BITSET_INDEX_CHUNKS: [[u8; 6]; 4] = [
579+
[0, 0, 0, 0, 0, 0], [0, 0, 5, 2, 0, 0], [1, 0, 0, 0, 0, 0], [4, 0, 3, 0, 0, 0],
604580
];
605581
static BITSET: [u64; 6] = [
606582
0, 1, 2147483648, 4294967328, 4294983168, 144036023240703,

0 commit comments

Comments
 (0)