1
1
///! This file is generated by src/tools/unicode-table-generator; do not edit manually!
2
2
3
+ #[ rustc_const_unstable( feature = "const_unicode_case_lookup" , issue = "101400" ) ]
3
4
#[ inline( always) ]
4
- fn bitset_search <
5
+ const fn bitset_search <
5
6
const N : usize ,
6
7
const CHUNK_SIZE : usize ,
7
8
const N1 : usize ,
@@ -17,14 +18,14 @@ fn bitset_search<
17
18
let bucket_idx = ( needle / 64 ) as usize ;
18
19
let chunk_map_idx = bucket_idx / CHUNK_SIZE ;
19
20
let chunk_piece = bucket_idx % CHUNK_SIZE ;
20
- let chunk_idx = if let Some ( & v ) = chunk_idx_map. get ( chunk_map_idx ) {
21
- v
21
+ let chunk_idx = if chunk_map_idx < chunk_idx_map. len ( ) {
22
+ chunk_idx_map [ chunk_map_idx ]
22
23
} else {
23
24
return false ;
24
25
} ;
25
26
let idx = bitset_chunk_idx[ chunk_idx as usize ] [ chunk_piece] as usize ;
26
- let word = if let Some ( word ) = bitset_canonical. get ( idx ) {
27
- * word
27
+ let word = if idx < bitset_canonical. len ( ) {
28
+ bitset_canonical [ idx ]
28
29
} else {
29
30
let ( real_idx, mapping) = bitset_canonicalized[ idx - bitset_canonical. len ( ) ] ;
30
31
let mut word = bitset_canonical[ real_idx as usize ] ;
@@ -318,14 +319,14 @@ pub mod grapheme_extend {
318
319
319
320
#[ rustfmt:: skip]
320
321
pub mod lowercase {
321
- static BITSET_CHUNKS_MAP : [ u8 ; 123 ] = [
322
+ const BITSET_CHUNKS_MAP : [ u8 ; 123 ] = [
322
323
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 ,
323
324
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 ,
324
325
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 ,
325
326
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 ,
326
327
3 , 0 , 0 , 7 ,
327
328
] ;
328
- static BITSET_INDEX_CHUNKS : [ [ u8 ; 16 ] ; 19 ] = [
329
+ const BITSET_INDEX_CHUNKS : [ [ u8 ; 16 ] ; 19 ] = [
329
330
[ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
330
331
[ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 59 , 0 , 0 ] ,
331
332
[ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 16 , 14 , 55 , 0 ] ,
@@ -346,7 +347,7 @@ pub mod lowercase {
346
347
[ 16 , 49 , 2 , 20 , 66 , 9 , 57 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ] ,
347
348
[ 63 , 39 , 54 , 12 , 73 , 61 , 18 , 1 , 6 , 62 , 71 , 19 , 68 , 69 , 3 , 44 ] ,
348
349
] ;
349
- static BITSET_CANONICAL : [ u64 ; 55 ] = [
350
+ const BITSET_CANONICAL : [ u64 ; 55 ] = [
350
351
0b0000000000000000000000000000000000000000000000000000000000000000 ,
351
352
0b1111111111111111110000000000000000000000000011111111111111111111 ,
352
353
0b1010101010101010101010101010101010101010101010101010100000000010 ,
@@ -403,13 +404,14 @@ pub mod lowercase {
403
404
0b1110011111111111111111111111111111111111111111110000000000000000 ,
404
405
0b1110101111000000000000000000000000001111111111111111111111111100 ,
405
406
] ;
406
- static BITSET_MAPPING : [ ( u8 , u8 ) ; 20 ] = [
407
+ const BITSET_MAPPING : [ ( u8 , u8 ) ; 20 ] = [
407
408
( 0 , 64 ) , ( 1 , 188 ) , ( 1 , 183 ) , ( 1 , 176 ) , ( 1 , 109 ) , ( 1 , 124 ) , ( 1 , 126 ) , ( 1 , 66 ) , ( 1 , 70 ) ,
408
409
( 1 , 77 ) , ( 2 , 146 ) , ( 2 , 144 ) , ( 2 , 83 ) , ( 3 , 12 ) , ( 3 , 6 ) , ( 4 , 156 ) , ( 4 , 78 ) , ( 5 , 187 ) ,
409
410
( 6 , 132 ) , ( 7 , 93 ) ,
410
411
] ;
411
412
412
- pub fn lookup ( c : char ) -> bool {
413
+ #[ rustc_const_unstable( feature = "const_unicode_case_lookup" , issue = "101400" ) ]
414
+ pub const fn lookup ( c : char ) -> bool {
413
415
super :: bitset_search (
414
416
c as u32 ,
415
417
& BITSET_CHUNKS_MAP ,
@@ -454,14 +456,14 @@ pub mod n {
454
456
455
457
#[ rustfmt:: skip]
456
458
pub mod uppercase {
457
- static BITSET_CHUNKS_MAP : [ u8 ; 125 ] = [
459
+ const BITSET_CHUNKS_MAP : [ u8 ; 125 ] = [
458
460
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 ,
459
461
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 ,
460
462
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 ,
461
463
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 ,
462
464
6 , 6 , 9 , 6 , 3 ,
463
465
] ;
464
- static BITSET_INDEX_CHUNKS : [ [ u8 ; 16 ] ; 17 ] = [
466
+ const BITSET_INDEX_CHUNKS : [ [ u8 ; 16 ] ; 17 ] = [
465
467
[ 43 , 43 , 5 , 34 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 5 , 1 ] ,
466
468
[ 43 , 43 , 5 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 ] ,
467
469
[ 43 , 43 , 39 , 43 , 43 , 43 , 43 , 43 , 17 , 17 , 62 , 17 , 42 , 29 , 24 , 23 ] ,
@@ -480,7 +482,7 @@ pub mod uppercase {
480
482
[ 57 , 19 , 2 , 18 , 10 , 47 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 ] ,
481
483
[ 57 , 37 , 17 , 27 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 , 43 ] ,
482
484
] ;
483
- static BITSET_CANONICAL : [ u64 ; 43 ] = [
485
+ const BITSET_CANONICAL : [ u64 ; 43 ] = [
484
486
0b0000011111111111111111111111111000000000000000000000000000000000 ,
485
487
0b0000000000111111111111111111111111111111111111111111111111111111 ,
486
488
0b0101010101010101010101010101010101010101010101010101010000000001 ,
@@ -525,13 +527,14 @@ pub mod uppercase {
525
527
0b1111011111111111000000000000000000000000000000000000000000000000 ,
526
528
0b1111111100000000111111110000000000111111000000001111111100000000 ,
527
529
] ;
528
- static BITSET_MAPPING : [ ( u8 , u8 ) ; 25 ] = [
530
+ const BITSET_MAPPING : [ ( u8 , u8 ) ; 25 ] = [
529
531
( 0 , 187 ) , ( 0 , 177 ) , ( 0 , 171 ) , ( 0 , 167 ) , ( 0 , 164 ) , ( 0 , 32 ) , ( 0 , 47 ) , ( 0 , 51 ) , ( 0 , 121 ) ,
530
532
( 0 , 117 ) , ( 0 , 109 ) , ( 1 , 150 ) , ( 1 , 148 ) , ( 1 , 142 ) , ( 1 , 134 ) , ( 1 , 131 ) , ( 1 , 64 ) , ( 2 , 164 ) ,
531
533
( 2 , 146 ) , ( 2 , 20 ) , ( 3 , 146 ) , ( 3 , 140 ) , ( 3 , 134 ) , ( 4 , 178 ) , ( 4 , 171 ) ,
532
534
] ;
533
535
534
- pub fn lookup ( c : char ) -> bool {
536
+ #[ rustc_const_unstable( feature = "const_unicode_case_lookup" , issue = "101400" ) ]
537
+ pub const fn lookup ( c : char ) -> bool {
535
538
super :: bitset_search (
536
539
c as u32 ,
537
540
& BITSET_CHUNKS_MAP ,
0 commit comments