mirror of
https://github.com/rust-lang/rust.git
synced 2024-11-22 14:55:26 +00:00
Address feedback from PR #101401
This commit is contained in:
parent
4a3e169da7
commit
2b328ea5ee
@ -18,12 +18,16 @@ const fn bitset_search<
|
||||
let bucket_idx = (needle / 64) as usize;
|
||||
let chunk_map_idx = bucket_idx / CHUNK_SIZE;
|
||||
let chunk_piece = bucket_idx % CHUNK_SIZE;
|
||||
// FIXME: const-hack: Revert to `slice::get` after `const_slice_index`
|
||||
// feature stabilizes.
|
||||
let chunk_idx = if chunk_map_idx < chunk_idx_map.len() {
|
||||
chunk_idx_map[chunk_map_idx]
|
||||
} else {
|
||||
return false;
|
||||
};
|
||||
let idx = bitset_chunk_idx[chunk_idx as usize][chunk_piece] as usize;
|
||||
// FIXME: const-hack: Revert to `slice::get` after `const_slice_index`
|
||||
// feature stabilizes.
|
||||
let word = if idx < bitset_canonical.len() {
|
||||
bitset_canonical[idx]
|
||||
} else {
|
||||
@ -319,14 +323,14 @@ pub mod grapheme_extend {
|
||||
|
||||
#[rustfmt::skip]
|
||||
pub mod lowercase {
|
||||
const BITSET_CHUNKS_MAP: [u8; 123] = [
|
||||
const BITSET_CHUNKS_MAP: &'static [u8; 123] = &[
|
||||
14, 17, 0, 0, 9, 0, 0, 12, 13, 10, 0, 16, 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, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 0, 4, 1, 0, 15, 0, 8, 0, 0, 11, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
|
||||
0, 0, 5, 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, 18, 0,
|
||||
3, 0, 0, 7,
|
||||
];
|
||||
const BITSET_INDEX_CHUNKS: [[u8; 16]; 19] = [
|
||||
const BITSET_INDEX_CHUNKS: &'static [[u8; 16]; 19] = &[
|
||||
[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, 59, 0, 0],
|
||||
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 14, 55, 0],
|
||||
@ -347,7 +351,7 @@ pub mod lowercase {
|
||||
[16, 49, 2, 20, 66, 9, 57, 0, 0, 0, 0, 0, 0, 0, 0, 0],
|
||||
[63, 39, 54, 12, 73, 61, 18, 1, 6, 62, 71, 19, 68, 69, 3, 44],
|
||||
];
|
||||
const BITSET_CANONICAL: [u64; 55] = [
|
||||
const BITSET_CANONICAL: &'static [u64; 55] = &[
|
||||
0b0000000000000000000000000000000000000000000000000000000000000000,
|
||||
0b1111111111111111110000000000000000000000000011111111111111111111,
|
||||
0b1010101010101010101010101010101010101010101010101010100000000010,
|
||||
@ -404,7 +408,7 @@ pub mod lowercase {
|
||||
0b1110011111111111111111111111111111111111111111110000000000000000,
|
||||
0b1110101111000000000000000000000000001111111111111111111111111100,
|
||||
];
|
||||
const BITSET_MAPPING: [(u8, u8); 20] = [
|
||||
const BITSET_MAPPING: &'static [(u8, u8); 20] = &[
|
||||
(0, 64), (1, 188), (1, 183), (1, 176), (1, 109), (1, 124), (1, 126), (1, 66), (1, 70),
|
||||
(1, 77), (2, 146), (2, 144), (2, 83), (3, 12), (3, 6), (4, 156), (4, 78), (5, 187),
|
||||
(6, 132), (7, 93),
|
||||
@ -456,14 +460,14 @@ pub mod n {
|
||||
|
||||
#[rustfmt::skip]
|
||||
pub mod uppercase {
|
||||
const BITSET_CHUNKS_MAP: [u8; 125] = [
|
||||
const BITSET_CHUNKS_MAP: &'static [u8; 125] = &[
|
||||
12, 15, 6, 6, 0, 6, 6, 2, 4, 11, 6, 16, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
||||
6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 8, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
||||
6, 6, 6, 5, 6, 14, 6, 10, 6, 6, 1, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6,
|
||||
6, 7, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 13, 6, 6,
|
||||
6, 6, 9, 6, 3,
|
||||
];
|
||||
const BITSET_INDEX_CHUNKS: [[u8; 16]; 17] = [
|
||||
const BITSET_INDEX_CHUNKS: &'static [[u8; 16]; 17] = &[
|
||||
[43, 43, 5, 34, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 5, 1],
|
||||
[43, 43, 5, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43],
|
||||
[43, 43, 39, 43, 43, 43, 43, 43, 17, 17, 62, 17, 42, 29, 24, 23],
|
||||
@ -482,7 +486,7 @@ pub mod uppercase {
|
||||
[57, 19, 2, 18, 10, 47, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43],
|
||||
[57, 37, 17, 27, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43, 43],
|
||||
];
|
||||
const BITSET_CANONICAL: [u64; 43] = [
|
||||
const BITSET_CANONICAL: &'static [u64; 43] = &[
|
||||
0b0000011111111111111111111111111000000000000000000000000000000000,
|
||||
0b0000000000111111111111111111111111111111111111111111111111111111,
|
||||
0b0101010101010101010101010101010101010101010101010101010000000001,
|
||||
@ -527,7 +531,7 @@ pub mod uppercase {
|
||||
0b1111011111111111000000000000000000000000000000000000000000000000,
|
||||
0b1111111100000000111111110000000000111111000000001111111100000000,
|
||||
];
|
||||
const BITSET_MAPPING: [(u8, u8); 25] = [
|
||||
const BITSET_MAPPING: &'static [(u8, u8); 25] = &[
|
||||
(0, 187), (0, 177), (0, 171), (0, 167), (0, 164), (0, 32), (0, 47), (0, 51), (0, 121),
|
||||
(0, 117), (0, 109), (1, 150), (1, 148), (1, 142), (1, 134), (1, 131), (1, 64), (2, 164),
|
||||
(2, 146), (2, 20), (3, 146), (3, 140), (3, 134), (4, 178), (4, 171),
|
||||
|
@ -16,12 +16,16 @@ const fn bitset_search<
|
||||
let bucket_idx = (needle / 64) as usize;
|
||||
let chunk_map_idx = bucket_idx / CHUNK_SIZE;
|
||||
let chunk_piece = bucket_idx % CHUNK_SIZE;
|
||||
// FIXME: const-hack: Revert to `slice::get` after `const_slice_index`
|
||||
// feature stabilizes.
|
||||
let chunk_idx = if chunk_map_idx < chunk_idx_map.len() {
|
||||
chunk_idx_map[chunk_map_idx]
|
||||
} else {
|
||||
return false;
|
||||
};
|
||||
let idx = bitset_chunk_idx[chunk_idx as usize][chunk_piece] as usize;
|
||||
// FIXME: const-hack: Revert to `slice::get` after `const_slice_index`
|
||||
// feature stabilizes.
|
||||
let word = if idx < bitset_canonical.len() {
|
||||
bitset_canonical[idx]
|
||||
} else {
|
||||
|
@ -76,7 +76,7 @@ impl RawEmitter {
|
||||
|
||||
writeln!(
|
||||
&mut self.file,
|
||||
"const BITSET_CANONICAL: [u64; {}] = [{}];",
|
||||
"const BITSET_CANONICAL: &'static [u64; {}] = &[{}];",
|
||||
canonicalized.canonical_words.len(),
|
||||
fmt_list(canonicalized.canonical_words.iter().map(|v| Bits(*v))),
|
||||
)
|
||||
@ -84,7 +84,7 @@ impl RawEmitter {
|
||||
self.bytes_used += 8 * canonicalized.canonical_words.len();
|
||||
writeln!(
|
||||
&mut self.file,
|
||||
"const BITSET_MAPPING: [(u8, u8); {}] = [{}];",
|
||||
"const BITSET_MAPPING: &'static [(u8, u8); {}] = &[{}];",
|
||||
canonicalized.canonicalized_words.len(),
|
||||
fmt_list(&canonicalized.canonicalized_words),
|
||||
)
|
||||
@ -135,7 +135,7 @@ impl RawEmitter {
|
||||
|
||||
writeln!(
|
||||
&mut self.file,
|
||||
"const BITSET_CHUNKS_MAP: [u8; {}] = [{}];",
|
||||
"const BITSET_CHUNKS_MAP: &'static [u8; {}] = &[{}];",
|
||||
chunk_indices.len(),
|
||||
fmt_list(&chunk_indices),
|
||||
)
|
||||
@ -143,7 +143,7 @@ impl RawEmitter {
|
||||
self.bytes_used += chunk_indices.len();
|
||||
writeln!(
|
||||
&mut self.file,
|
||||
"const BITSET_INDEX_CHUNKS: [[u8; {}]; {}] = [{}];",
|
||||
"const BITSET_INDEX_CHUNKS: &'static [[u8; {}]; {}] = &[{}];",
|
||||
chunk_length,
|
||||
chunks.len(),
|
||||
fmt_list(chunks.iter()),
|
||||
|
Loading…
Reference in New Issue
Block a user