Permalink
Cannot retrieve contributors at this time
Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.
Sign up
Fetching contributors…
| // AUTOGENERATED FROM index-windows-874.txt, ORIGINAL COMMENT FOLLOWS: | |
| // | |
| // Any copyright is dedicated to the Public Domain. | |
| // https://creativecommons.org/publicdomain/zero/1.0/ | |
| // | |
| // For details on index index-windows-874.txt see the Encoding Standard | |
| // https://encoding.spec.whatwg.org/ | |
| // | |
| // Identifier: b416583ce125e38474381b31b401a98b19ecf2e57e0998e78a1e18b14894905d | |
| // Date: 2016-01-20 | |
| #[allow(dead_code)] const X: u16 = 0xffff; | |
| const FORWARD_TABLE: &'static [u16] = &[ | |
| 8364, 129, 130, 131, 132, 8230, 134, 135, 136, 137, 138, 139, 140, 141, | |
| 142, 143, 144, 8216, 8217, 8220, 8221, 8226, 8211, 8212, 152, 153, 154, | |
| 155, 156, 157, 158, 159, 160, 3585, 3586, 3587, 3588, 3589, 3590, 3591, | |
| 3592, 3593, 3594, 3595, 3596, 3597, 3598, 3599, 3600, 3601, 3602, 3603, | |
| 3604, 3605, 3606, 3607, 3608, 3609, 3610, 3611, 3612, 3613, 3614, 3615, | |
| 3616, 3617, 3618, 3619, 3620, 3621, 3622, 3623, 3624, 3625, 3626, 3627, | |
| 3628, 3629, 3630, 3631, 3632, 3633, 3634, 3635, 3636, 3637, 3638, 3639, | |
| 3640, 3641, 3642, X, X, X, X, 3647, 3648, 3649, 3650, 3651, 3652, 3653, | |
| 3654, 3655, 3656, 3657, 3658, 3659, 3660, 3661, 3662, 3663, 3664, 3665, | |
| 3666, 3667, 3668, 3669, 3670, 3671, 3672, 3673, 3674, 3675, X, X, X, X, | |
| ]; // 128 entries | |
| /// Returns the index code point for pointer `code` in this index. | |
| #[inline] | |
| pub fn forward(code: u8) -> u16 { | |
| FORWARD_TABLE[(code - 0x80) as usize] | |
| } | |
| #[cfg(not(feature = "no-optimized-legacy-encoding"))] | |
| const BACKWARD_TABLE_LOWER: &'static [u8] = &[ | |
| 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, 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, 0, 0, 224, 225, 226, 227, 228, 229, | |
| 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, | |
| 245, 246, 247, 248, 249, 250, 251, 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, 0, 0, 0, 0, 0, 0, 0, | |
| 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 0, 0, 129, 130, 131, 132, 0, 134, 135, 136, 137, 138, 139, 140, 141, 142, | |
| 143, 144, 0, 0, 0, 0, 0, 0, 0, 152, 153, 154, 155, 156, 157, 158, 159, 160, | |
| 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, 150, 151, 0, 0, 0, 145, 146, 0, 0, 147, 148, 0, 0, 0, 0, | |
| 149, 0, 0, 0, 133, 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, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, | |
| 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, | |
| 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, | |
| 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, | |
| 217, 218, 0, 0, 0, 0, 223, | |
| ]; // 327 entries | |
| #[cfg(not(feature = "no-optimized-legacy-encoding"))] | |
| const BACKWARD_TABLE_UPPER: &'static [u16] = &[ | |
| 0, 0, 155, 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, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
| 0, 0, 0, 0, 0, 0, 0, 263, 64, 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, 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, 0, 0, 0, | |
| 0, 0, 0, 0, 0, 200, 0, 92, | |
| ]; // 131 entries | |
| /// Returns the index pointer for code point `code` in this index. | |
| #[inline] | |
| #[cfg(not(feature = "no-optimized-legacy-encoding"))] | |
| pub fn backward(code: u32) -> u8 { | |
| let offset = (code >> 6) as usize; | |
| let offset = if offset < 131 {BACKWARD_TABLE_UPPER[offset] as usize} else {0}; | |
| BACKWARD_TABLE_LOWER[offset + ((code & 63) as usize)] | |
| } | |
| /// Returns the index pointer for code point `code` in this index. | |
| #[cfg(feature = "no-optimized-legacy-encoding")] | |
| pub fn backward(code: u32) -> u8 { | |
| if code > 8364 || ((0x10081u32 >> (code >> 9)) & 1) == 0 { return 0; } | |
| let code = code as u16; | |
| for i in 0..0x80 { | |
| if FORWARD_TABLE[i as usize] == code { return 0x80 + i; } | |
| } | |
| 0 | |
| } | |
| #[cfg(test)] | |
| single_byte_tests! { | |
| } |