mirror of
https://github.com/openharmony/third_party_rust_rust-base64.git
synced 2026-07-01 21:14:03 -04:00
Switch to generated encode tables
This commit is contained in:
+15
-2
@@ -15,6 +15,7 @@ fn main() {
|
||||
// /
|
||||
.chain(0x2F..0x30)
|
||||
.collect();
|
||||
print_encode_table(&standard_alphabet, "STANDARD_ENCODE", 0);
|
||||
print_decode_table(&standard_alphabet, "STANDARD_DECODE", 0);
|
||||
|
||||
// A-Z
|
||||
@@ -28,10 +29,22 @@ fn main() {
|
||||
// _s
|
||||
.chain(0x5F..0x60)
|
||||
.collect();
|
||||
print_encode_table(&url_alphabet, "URL_SAFE_ENCODE", 0);
|
||||
print_decode_table(&url_alphabet, "URL_SAFE_DECODE", 0);
|
||||
|
||||
}
|
||||
|
||||
fn print_encode_table(alphabet: &[u8], const_name: &str, indent_depth: usize) {
|
||||
println!("{:width$}pub const {}: &'static [u8; 64] = &[", "", const_name, width=indent_depth);
|
||||
|
||||
for (i, b) in alphabet.iter().enumerate() {
|
||||
println!("{:width$}{}, // input {} (0x{:X}) => '{}' (0x{:X})", "",
|
||||
b, i, i, String::from_utf8(vec!(*b as u8)).unwrap(), b, width=indent_depth + 4);
|
||||
}
|
||||
|
||||
println!("{:width$}];", "", width=indent_depth);
|
||||
}
|
||||
|
||||
fn print_decode_table(alphabet: &[u8], const_name: &str, indent_depth: usize) {
|
||||
// map of alphabet bytes to 6-bit morsels
|
||||
let mut input_to_morsel = HashMap::<u8, u8>::new();
|
||||
@@ -48,7 +61,7 @@ fn print_decode_table(alphabet: &[u8], const_name: &str, indent_depth: usize) {
|
||||
None => ("INVALID_VALUE".to_string(),
|
||||
format!("input {} (0x{:X})", ascii_byte, ascii_byte)),
|
||||
Some(v) => (format!("{}", *v),
|
||||
format!("input {} (0x{:X} char '{}') = {} (0x{:X})",
|
||||
format!("input {} (0x{:X} char '{}') => {} (0x{:X})",
|
||||
ascii_byte,
|
||||
ascii_byte,
|
||||
String::from_utf8(vec!(ascii_byte as u8)).unwrap(), *v, *v))
|
||||
@@ -56,5 +69,5 @@ fn print_decode_table(alphabet: &[u8], const_name: &str, indent_depth: usize) {
|
||||
|
||||
println!("{:width$}{}, // {}", "", value, comment, width=indent_depth + 4);
|
||||
}
|
||||
println!("];")
|
||||
println!("{:width$}];", "", width=indent_depth);
|
||||
}
|
||||
|
||||
+2
-24
@@ -4,28 +4,6 @@ use std::{fmt, error, str};
|
||||
|
||||
use byteorder::{BigEndian, ByteOrder};
|
||||
|
||||
const STANDARD: [u8; 64] = [
|
||||
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
|
||||
0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50,
|
||||
0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
|
||||
0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
|
||||
0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E,
|
||||
0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76,
|
||||
0x77, 0x78, 0x79, 0x7A, 0x30, 0x31, 0x32, 0x33,
|
||||
0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2B, 0x2F
|
||||
];
|
||||
|
||||
const URL_SAFE: [u8; 64] = [
|
||||
0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
|
||||
0x49, 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F, 0x50,
|
||||
0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
|
||||
0x59, 0x5A, 0x61, 0x62, 0x63, 0x64, 0x65, 0x66,
|
||||
0x67, 0x68, 0x69, 0x6A, 0x6B, 0x6C, 0x6D, 0x6E,
|
||||
0x6F, 0x70, 0x71, 0x72, 0x73, 0x74, 0x75, 0x76,
|
||||
0x77, 0x78, 0x79, 0x7A, 0x30, 0x31, 0x32, 0x33,
|
||||
0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x2D, 0x5F
|
||||
];
|
||||
|
||||
mod tables;
|
||||
|
||||
pub enum Base64Mode {
|
||||
@@ -197,8 +175,8 @@ fn encoded_size(bytes_len: usize) -> usize {
|
||||
///```
|
||||
pub fn encode_mode_buf(bytes: &[u8], mode: Base64Mode, buf: &mut String) {
|
||||
let (ref charset, _) = match mode {
|
||||
Base64Mode::Standard => (STANDARD, false),
|
||||
Base64Mode::UrlSafe => (URL_SAFE, false),
|
||||
Base64Mode::Standard => (tables::STANDARD_ENCODE, false),
|
||||
Base64Mode::UrlSafe => (tables::URL_SAFE_ENCODE, false),
|
||||
//TODO Base64Mode::MIME => (STANDARD, true)
|
||||
};
|
||||
|
||||
|
||||
+260
-128
@@ -1,4 +1,70 @@
|
||||
pub const INVALID_VALUE: u8 = 255;
|
||||
pub const STANDARD_ENCODE: &'static [u8; 64] = &[
|
||||
65, // input 0 (0x0) => 'A' (0x41)
|
||||
66, // input 1 (0x1) => 'B' (0x42)
|
||||
67, // input 2 (0x2) => 'C' (0x43)
|
||||
68, // input 3 (0x3) => 'D' (0x44)
|
||||
69, // input 4 (0x4) => 'E' (0x45)
|
||||
70, // input 5 (0x5) => 'F' (0x46)
|
||||
71, // input 6 (0x6) => 'G' (0x47)
|
||||
72, // input 7 (0x7) => 'H' (0x48)
|
||||
73, // input 8 (0x8) => 'I' (0x49)
|
||||
74, // input 9 (0x9) => 'J' (0x4A)
|
||||
75, // input 10 (0xA) => 'K' (0x4B)
|
||||
76, // input 11 (0xB) => 'L' (0x4C)
|
||||
77, // input 12 (0xC) => 'M' (0x4D)
|
||||
78, // input 13 (0xD) => 'N' (0x4E)
|
||||
79, // input 14 (0xE) => 'O' (0x4F)
|
||||
80, // input 15 (0xF) => 'P' (0x50)
|
||||
81, // input 16 (0x10) => 'Q' (0x51)
|
||||
82, // input 17 (0x11) => 'R' (0x52)
|
||||
83, // input 18 (0x12) => 'S' (0x53)
|
||||
84, // input 19 (0x13) => 'T' (0x54)
|
||||
85, // input 20 (0x14) => 'U' (0x55)
|
||||
86, // input 21 (0x15) => 'V' (0x56)
|
||||
87, // input 22 (0x16) => 'W' (0x57)
|
||||
88, // input 23 (0x17) => 'X' (0x58)
|
||||
89, // input 24 (0x18) => 'Y' (0x59)
|
||||
90, // input 25 (0x19) => 'Z' (0x5A)
|
||||
97, // input 26 (0x1A) => 'a' (0x61)
|
||||
98, // input 27 (0x1B) => 'b' (0x62)
|
||||
99, // input 28 (0x1C) => 'c' (0x63)
|
||||
100, // input 29 (0x1D) => 'd' (0x64)
|
||||
101, // input 30 (0x1E) => 'e' (0x65)
|
||||
102, // input 31 (0x1F) => 'f' (0x66)
|
||||
103, // input 32 (0x20) => 'g' (0x67)
|
||||
104, // input 33 (0x21) => 'h' (0x68)
|
||||
105, // input 34 (0x22) => 'i' (0x69)
|
||||
106, // input 35 (0x23) => 'j' (0x6A)
|
||||
107, // input 36 (0x24) => 'k' (0x6B)
|
||||
108, // input 37 (0x25) => 'l' (0x6C)
|
||||
109, // input 38 (0x26) => 'm' (0x6D)
|
||||
110, // input 39 (0x27) => 'n' (0x6E)
|
||||
111, // input 40 (0x28) => 'o' (0x6F)
|
||||
112, // input 41 (0x29) => 'p' (0x70)
|
||||
113, // input 42 (0x2A) => 'q' (0x71)
|
||||
114, // input 43 (0x2B) => 'r' (0x72)
|
||||
115, // input 44 (0x2C) => 's' (0x73)
|
||||
116, // input 45 (0x2D) => 't' (0x74)
|
||||
117, // input 46 (0x2E) => 'u' (0x75)
|
||||
118, // input 47 (0x2F) => 'v' (0x76)
|
||||
119, // input 48 (0x30) => 'w' (0x77)
|
||||
120, // input 49 (0x31) => 'x' (0x78)
|
||||
121, // input 50 (0x32) => 'y' (0x79)
|
||||
122, // input 51 (0x33) => 'z' (0x7A)
|
||||
48, // input 52 (0x34) => '0' (0x30)
|
||||
49, // input 53 (0x35) => '1' (0x31)
|
||||
50, // input 54 (0x36) => '2' (0x32)
|
||||
51, // input 55 (0x37) => '3' (0x33)
|
||||
52, // input 56 (0x38) => '4' (0x34)
|
||||
53, // input 57 (0x39) => '5' (0x35)
|
||||
54, // input 58 (0x3A) => '6' (0x36)
|
||||
55, // input 59 (0x3B) => '7' (0x37)
|
||||
56, // input 60 (0x3C) => '8' (0x38)
|
||||
57, // input 61 (0x3D) => '9' (0x39)
|
||||
43, // input 62 (0x3E) => '+' (0x2B)
|
||||
47, // input 63 (0x3F) => '/' (0x2F)
|
||||
];
|
||||
pub const STANDARD_DECODE: &'static [u8; 256] = &[
|
||||
INVALID_VALUE, // input 0 (0x0)
|
||||
INVALID_VALUE, // input 1 (0x1)
|
||||
@@ -43,21 +109,21 @@ pub const STANDARD_DECODE: &'static [u8; 256] = &[
|
||||
INVALID_VALUE, // input 40 (0x28)
|
||||
INVALID_VALUE, // input 41 (0x29)
|
||||
INVALID_VALUE, // input 42 (0x2A)
|
||||
62, // input 43 (0x2B char '+') = 62 (0x3E)
|
||||
62, // input 43 (0x2B char '+') => 62 (0x3E)
|
||||
INVALID_VALUE, // input 44 (0x2C)
|
||||
INVALID_VALUE, // input 45 (0x2D)
|
||||
INVALID_VALUE, // input 46 (0x2E)
|
||||
63, // input 47 (0x2F char '/') = 63 (0x3F)
|
||||
52, // input 48 (0x30 char '0') = 52 (0x34)
|
||||
53, // input 49 (0x31 char '1') = 53 (0x35)
|
||||
54, // input 50 (0x32 char '2') = 54 (0x36)
|
||||
55, // input 51 (0x33 char '3') = 55 (0x37)
|
||||
56, // input 52 (0x34 char '4') = 56 (0x38)
|
||||
57, // input 53 (0x35 char '5') = 57 (0x39)
|
||||
58, // input 54 (0x36 char '6') = 58 (0x3A)
|
||||
59, // input 55 (0x37 char '7') = 59 (0x3B)
|
||||
60, // input 56 (0x38 char '8') = 60 (0x3C)
|
||||
61, // input 57 (0x39 char '9') = 61 (0x3D)
|
||||
63, // input 47 (0x2F char '/') => 63 (0x3F)
|
||||
52, // input 48 (0x30 char '0') => 52 (0x34)
|
||||
53, // input 49 (0x31 char '1') => 53 (0x35)
|
||||
54, // input 50 (0x32 char '2') => 54 (0x36)
|
||||
55, // input 51 (0x33 char '3') => 55 (0x37)
|
||||
56, // input 52 (0x34 char '4') => 56 (0x38)
|
||||
57, // input 53 (0x35 char '5') => 57 (0x39)
|
||||
58, // input 54 (0x36 char '6') => 58 (0x3A)
|
||||
59, // input 55 (0x37 char '7') => 59 (0x3B)
|
||||
60, // input 56 (0x38 char '8') => 60 (0x3C)
|
||||
61, // input 57 (0x39 char '9') => 61 (0x3D)
|
||||
INVALID_VALUE, // input 58 (0x3A)
|
||||
INVALID_VALUE, // input 59 (0x3B)
|
||||
INVALID_VALUE, // input 60 (0x3C)
|
||||
@@ -65,64 +131,64 @@ pub const STANDARD_DECODE: &'static [u8; 256] = &[
|
||||
INVALID_VALUE, // input 62 (0x3E)
|
||||
INVALID_VALUE, // input 63 (0x3F)
|
||||
INVALID_VALUE, // input 64 (0x40)
|
||||
0, // input 65 (0x41 char 'A') = 0 (0x0)
|
||||
1, // input 66 (0x42 char 'B') = 1 (0x1)
|
||||
2, // input 67 (0x43 char 'C') = 2 (0x2)
|
||||
3, // input 68 (0x44 char 'D') = 3 (0x3)
|
||||
4, // input 69 (0x45 char 'E') = 4 (0x4)
|
||||
5, // input 70 (0x46 char 'F') = 5 (0x5)
|
||||
6, // input 71 (0x47 char 'G') = 6 (0x6)
|
||||
7, // input 72 (0x48 char 'H') = 7 (0x7)
|
||||
8, // input 73 (0x49 char 'I') = 8 (0x8)
|
||||
9, // input 74 (0x4A char 'J') = 9 (0x9)
|
||||
10, // input 75 (0x4B char 'K') = 10 (0xA)
|
||||
11, // input 76 (0x4C char 'L') = 11 (0xB)
|
||||
12, // input 77 (0x4D char 'M') = 12 (0xC)
|
||||
13, // input 78 (0x4E char 'N') = 13 (0xD)
|
||||
14, // input 79 (0x4F char 'O') = 14 (0xE)
|
||||
15, // input 80 (0x50 char 'P') = 15 (0xF)
|
||||
16, // input 81 (0x51 char 'Q') = 16 (0x10)
|
||||
17, // input 82 (0x52 char 'R') = 17 (0x11)
|
||||
18, // input 83 (0x53 char 'S') = 18 (0x12)
|
||||
19, // input 84 (0x54 char 'T') = 19 (0x13)
|
||||
20, // input 85 (0x55 char 'U') = 20 (0x14)
|
||||
21, // input 86 (0x56 char 'V') = 21 (0x15)
|
||||
22, // input 87 (0x57 char 'W') = 22 (0x16)
|
||||
23, // input 88 (0x58 char 'X') = 23 (0x17)
|
||||
24, // input 89 (0x59 char 'Y') = 24 (0x18)
|
||||
25, // input 90 (0x5A char 'Z') = 25 (0x19)
|
||||
0, // input 65 (0x41 char 'A') => 0 (0x0)
|
||||
1, // input 66 (0x42 char 'B') => 1 (0x1)
|
||||
2, // input 67 (0x43 char 'C') => 2 (0x2)
|
||||
3, // input 68 (0x44 char 'D') => 3 (0x3)
|
||||
4, // input 69 (0x45 char 'E') => 4 (0x4)
|
||||
5, // input 70 (0x46 char 'F') => 5 (0x5)
|
||||
6, // input 71 (0x47 char 'G') => 6 (0x6)
|
||||
7, // input 72 (0x48 char 'H') => 7 (0x7)
|
||||
8, // input 73 (0x49 char 'I') => 8 (0x8)
|
||||
9, // input 74 (0x4A char 'J') => 9 (0x9)
|
||||
10, // input 75 (0x4B char 'K') => 10 (0xA)
|
||||
11, // input 76 (0x4C char 'L') => 11 (0xB)
|
||||
12, // input 77 (0x4D char 'M') => 12 (0xC)
|
||||
13, // input 78 (0x4E char 'N') => 13 (0xD)
|
||||
14, // input 79 (0x4F char 'O') => 14 (0xE)
|
||||
15, // input 80 (0x50 char 'P') => 15 (0xF)
|
||||
16, // input 81 (0x51 char 'Q') => 16 (0x10)
|
||||
17, // input 82 (0x52 char 'R') => 17 (0x11)
|
||||
18, // input 83 (0x53 char 'S') => 18 (0x12)
|
||||
19, // input 84 (0x54 char 'T') => 19 (0x13)
|
||||
20, // input 85 (0x55 char 'U') => 20 (0x14)
|
||||
21, // input 86 (0x56 char 'V') => 21 (0x15)
|
||||
22, // input 87 (0x57 char 'W') => 22 (0x16)
|
||||
23, // input 88 (0x58 char 'X') => 23 (0x17)
|
||||
24, // input 89 (0x59 char 'Y') => 24 (0x18)
|
||||
25, // input 90 (0x5A char 'Z') => 25 (0x19)
|
||||
INVALID_VALUE, // input 91 (0x5B)
|
||||
INVALID_VALUE, // input 92 (0x5C)
|
||||
INVALID_VALUE, // input 93 (0x5D)
|
||||
INVALID_VALUE, // input 94 (0x5E)
|
||||
INVALID_VALUE, // input 95 (0x5F)
|
||||
INVALID_VALUE, // input 96 (0x60)
|
||||
26, // input 97 (0x61 char 'a') = 26 (0x1A)
|
||||
27, // input 98 (0x62 char 'b') = 27 (0x1B)
|
||||
28, // input 99 (0x63 char 'c') = 28 (0x1C)
|
||||
29, // input 100 (0x64 char 'd') = 29 (0x1D)
|
||||
30, // input 101 (0x65 char 'e') = 30 (0x1E)
|
||||
31, // input 102 (0x66 char 'f') = 31 (0x1F)
|
||||
32, // input 103 (0x67 char 'g') = 32 (0x20)
|
||||
33, // input 104 (0x68 char 'h') = 33 (0x21)
|
||||
34, // input 105 (0x69 char 'i') = 34 (0x22)
|
||||
35, // input 106 (0x6A char 'j') = 35 (0x23)
|
||||
36, // input 107 (0x6B char 'k') = 36 (0x24)
|
||||
37, // input 108 (0x6C char 'l') = 37 (0x25)
|
||||
38, // input 109 (0x6D char 'm') = 38 (0x26)
|
||||
39, // input 110 (0x6E char 'n') = 39 (0x27)
|
||||
40, // input 111 (0x6F char 'o') = 40 (0x28)
|
||||
41, // input 112 (0x70 char 'p') = 41 (0x29)
|
||||
42, // input 113 (0x71 char 'q') = 42 (0x2A)
|
||||
43, // input 114 (0x72 char 'r') = 43 (0x2B)
|
||||
44, // input 115 (0x73 char 's') = 44 (0x2C)
|
||||
45, // input 116 (0x74 char 't') = 45 (0x2D)
|
||||
46, // input 117 (0x75 char 'u') = 46 (0x2E)
|
||||
47, // input 118 (0x76 char 'v') = 47 (0x2F)
|
||||
48, // input 119 (0x77 char 'w') = 48 (0x30)
|
||||
49, // input 120 (0x78 char 'x') = 49 (0x31)
|
||||
50, // input 121 (0x79 char 'y') = 50 (0x32)
|
||||
51, // input 122 (0x7A char 'z') = 51 (0x33)
|
||||
26, // input 97 (0x61 char 'a') => 26 (0x1A)
|
||||
27, // input 98 (0x62 char 'b') => 27 (0x1B)
|
||||
28, // input 99 (0x63 char 'c') => 28 (0x1C)
|
||||
29, // input 100 (0x64 char 'd') => 29 (0x1D)
|
||||
30, // input 101 (0x65 char 'e') => 30 (0x1E)
|
||||
31, // input 102 (0x66 char 'f') => 31 (0x1F)
|
||||
32, // input 103 (0x67 char 'g') => 32 (0x20)
|
||||
33, // input 104 (0x68 char 'h') => 33 (0x21)
|
||||
34, // input 105 (0x69 char 'i') => 34 (0x22)
|
||||
35, // input 106 (0x6A char 'j') => 35 (0x23)
|
||||
36, // input 107 (0x6B char 'k') => 36 (0x24)
|
||||
37, // input 108 (0x6C char 'l') => 37 (0x25)
|
||||
38, // input 109 (0x6D char 'm') => 38 (0x26)
|
||||
39, // input 110 (0x6E char 'n') => 39 (0x27)
|
||||
40, // input 111 (0x6F char 'o') => 40 (0x28)
|
||||
41, // input 112 (0x70 char 'p') => 41 (0x29)
|
||||
42, // input 113 (0x71 char 'q') => 42 (0x2A)
|
||||
43, // input 114 (0x72 char 'r') => 43 (0x2B)
|
||||
44, // input 115 (0x73 char 's') => 44 (0x2C)
|
||||
45, // input 116 (0x74 char 't') => 45 (0x2D)
|
||||
46, // input 117 (0x75 char 'u') => 46 (0x2E)
|
||||
47, // input 118 (0x76 char 'v') => 47 (0x2F)
|
||||
48, // input 119 (0x77 char 'w') => 48 (0x30)
|
||||
49, // input 120 (0x78 char 'x') => 49 (0x31)
|
||||
50, // input 121 (0x79 char 'y') => 50 (0x32)
|
||||
51, // input 122 (0x7A char 'z') => 51 (0x33)
|
||||
INVALID_VALUE, // input 123 (0x7B)
|
||||
INVALID_VALUE, // input 124 (0x7C)
|
||||
INVALID_VALUE, // input 125 (0x7D)
|
||||
@@ -257,6 +323,72 @@ pub const STANDARD_DECODE: &'static [u8; 256] = &[
|
||||
INVALID_VALUE, // input 254 (0xFE)
|
||||
INVALID_VALUE, // input 255 (0xFF)
|
||||
];
|
||||
pub const URL_SAFE_ENCODE: &'static [u8; 64] = &[
|
||||
65, // input 0 (0x0) => 'A' (0x41)
|
||||
66, // input 1 (0x1) => 'B' (0x42)
|
||||
67, // input 2 (0x2) => 'C' (0x43)
|
||||
68, // input 3 (0x3) => 'D' (0x44)
|
||||
69, // input 4 (0x4) => 'E' (0x45)
|
||||
70, // input 5 (0x5) => 'F' (0x46)
|
||||
71, // input 6 (0x6) => 'G' (0x47)
|
||||
72, // input 7 (0x7) => 'H' (0x48)
|
||||
73, // input 8 (0x8) => 'I' (0x49)
|
||||
74, // input 9 (0x9) => 'J' (0x4A)
|
||||
75, // input 10 (0xA) => 'K' (0x4B)
|
||||
76, // input 11 (0xB) => 'L' (0x4C)
|
||||
77, // input 12 (0xC) => 'M' (0x4D)
|
||||
78, // input 13 (0xD) => 'N' (0x4E)
|
||||
79, // input 14 (0xE) => 'O' (0x4F)
|
||||
80, // input 15 (0xF) => 'P' (0x50)
|
||||
81, // input 16 (0x10) => 'Q' (0x51)
|
||||
82, // input 17 (0x11) => 'R' (0x52)
|
||||
83, // input 18 (0x12) => 'S' (0x53)
|
||||
84, // input 19 (0x13) => 'T' (0x54)
|
||||
85, // input 20 (0x14) => 'U' (0x55)
|
||||
86, // input 21 (0x15) => 'V' (0x56)
|
||||
87, // input 22 (0x16) => 'W' (0x57)
|
||||
88, // input 23 (0x17) => 'X' (0x58)
|
||||
89, // input 24 (0x18) => 'Y' (0x59)
|
||||
90, // input 25 (0x19) => 'Z' (0x5A)
|
||||
97, // input 26 (0x1A) => 'a' (0x61)
|
||||
98, // input 27 (0x1B) => 'b' (0x62)
|
||||
99, // input 28 (0x1C) => 'c' (0x63)
|
||||
100, // input 29 (0x1D) => 'd' (0x64)
|
||||
101, // input 30 (0x1E) => 'e' (0x65)
|
||||
102, // input 31 (0x1F) => 'f' (0x66)
|
||||
103, // input 32 (0x20) => 'g' (0x67)
|
||||
104, // input 33 (0x21) => 'h' (0x68)
|
||||
105, // input 34 (0x22) => 'i' (0x69)
|
||||
106, // input 35 (0x23) => 'j' (0x6A)
|
||||
107, // input 36 (0x24) => 'k' (0x6B)
|
||||
108, // input 37 (0x25) => 'l' (0x6C)
|
||||
109, // input 38 (0x26) => 'm' (0x6D)
|
||||
110, // input 39 (0x27) => 'n' (0x6E)
|
||||
111, // input 40 (0x28) => 'o' (0x6F)
|
||||
112, // input 41 (0x29) => 'p' (0x70)
|
||||
113, // input 42 (0x2A) => 'q' (0x71)
|
||||
114, // input 43 (0x2B) => 'r' (0x72)
|
||||
115, // input 44 (0x2C) => 's' (0x73)
|
||||
116, // input 45 (0x2D) => 't' (0x74)
|
||||
117, // input 46 (0x2E) => 'u' (0x75)
|
||||
118, // input 47 (0x2F) => 'v' (0x76)
|
||||
119, // input 48 (0x30) => 'w' (0x77)
|
||||
120, // input 49 (0x31) => 'x' (0x78)
|
||||
121, // input 50 (0x32) => 'y' (0x79)
|
||||
122, // input 51 (0x33) => 'z' (0x7A)
|
||||
48, // input 52 (0x34) => '0' (0x30)
|
||||
49, // input 53 (0x35) => '1' (0x31)
|
||||
50, // input 54 (0x36) => '2' (0x32)
|
||||
51, // input 55 (0x37) => '3' (0x33)
|
||||
52, // input 56 (0x38) => '4' (0x34)
|
||||
53, // input 57 (0x39) => '5' (0x35)
|
||||
54, // input 58 (0x3A) => '6' (0x36)
|
||||
55, // input 59 (0x3B) => '7' (0x37)
|
||||
56, // input 60 (0x3C) => '8' (0x38)
|
||||
57, // input 61 (0x3D) => '9' (0x39)
|
||||
45, // input 62 (0x3E) => '-' (0x2D)
|
||||
95, // input 63 (0x3F) => '_' (0x5F)
|
||||
];
|
||||
pub const URL_SAFE_DECODE: &'static [u8; 256] = &[
|
||||
INVALID_VALUE, // input 0 (0x0)
|
||||
INVALID_VALUE, // input 1 (0x1)
|
||||
@@ -303,19 +435,19 @@ pub const URL_SAFE_DECODE: &'static [u8; 256] = &[
|
||||
INVALID_VALUE, // input 42 (0x2A)
|
||||
INVALID_VALUE, // input 43 (0x2B)
|
||||
INVALID_VALUE, // input 44 (0x2C)
|
||||
62, // input 45 (0x2D char '-') = 62 (0x3E)
|
||||
62, // input 45 (0x2D char '-') => 62 (0x3E)
|
||||
INVALID_VALUE, // input 46 (0x2E)
|
||||
INVALID_VALUE, // input 47 (0x2F)
|
||||
52, // input 48 (0x30 char '0') = 52 (0x34)
|
||||
53, // input 49 (0x31 char '1') = 53 (0x35)
|
||||
54, // input 50 (0x32 char '2') = 54 (0x36)
|
||||
55, // input 51 (0x33 char '3') = 55 (0x37)
|
||||
56, // input 52 (0x34 char '4') = 56 (0x38)
|
||||
57, // input 53 (0x35 char '5') = 57 (0x39)
|
||||
58, // input 54 (0x36 char '6') = 58 (0x3A)
|
||||
59, // input 55 (0x37 char '7') = 59 (0x3B)
|
||||
60, // input 56 (0x38 char '8') = 60 (0x3C)
|
||||
61, // input 57 (0x39 char '9') = 61 (0x3D)
|
||||
52, // input 48 (0x30 char '0') => 52 (0x34)
|
||||
53, // input 49 (0x31 char '1') => 53 (0x35)
|
||||
54, // input 50 (0x32 char '2') => 54 (0x36)
|
||||
55, // input 51 (0x33 char '3') => 55 (0x37)
|
||||
56, // input 52 (0x34 char '4') => 56 (0x38)
|
||||
57, // input 53 (0x35 char '5') => 57 (0x39)
|
||||
58, // input 54 (0x36 char '6') => 58 (0x3A)
|
||||
59, // input 55 (0x37 char '7') => 59 (0x3B)
|
||||
60, // input 56 (0x38 char '8') => 60 (0x3C)
|
||||
61, // input 57 (0x39 char '9') => 61 (0x3D)
|
||||
INVALID_VALUE, // input 58 (0x3A)
|
||||
INVALID_VALUE, // input 59 (0x3B)
|
||||
INVALID_VALUE, // input 60 (0x3C)
|
||||
@@ -323,64 +455,64 @@ pub const URL_SAFE_DECODE: &'static [u8; 256] = &[
|
||||
INVALID_VALUE, // input 62 (0x3E)
|
||||
INVALID_VALUE, // input 63 (0x3F)
|
||||
INVALID_VALUE, // input 64 (0x40)
|
||||
0, // input 65 (0x41 char 'A') = 0 (0x0)
|
||||
1, // input 66 (0x42 char 'B') = 1 (0x1)
|
||||
2, // input 67 (0x43 char 'C') = 2 (0x2)
|
||||
3, // input 68 (0x44 char 'D') = 3 (0x3)
|
||||
4, // input 69 (0x45 char 'E') = 4 (0x4)
|
||||
5, // input 70 (0x46 char 'F') = 5 (0x5)
|
||||
6, // input 71 (0x47 char 'G') = 6 (0x6)
|
||||
7, // input 72 (0x48 char 'H') = 7 (0x7)
|
||||
8, // input 73 (0x49 char 'I') = 8 (0x8)
|
||||
9, // input 74 (0x4A char 'J') = 9 (0x9)
|
||||
10, // input 75 (0x4B char 'K') = 10 (0xA)
|
||||
11, // input 76 (0x4C char 'L') = 11 (0xB)
|
||||
12, // input 77 (0x4D char 'M') = 12 (0xC)
|
||||
13, // input 78 (0x4E char 'N') = 13 (0xD)
|
||||
14, // input 79 (0x4F char 'O') = 14 (0xE)
|
||||
15, // input 80 (0x50 char 'P') = 15 (0xF)
|
||||
16, // input 81 (0x51 char 'Q') = 16 (0x10)
|
||||
17, // input 82 (0x52 char 'R') = 17 (0x11)
|
||||
18, // input 83 (0x53 char 'S') = 18 (0x12)
|
||||
19, // input 84 (0x54 char 'T') = 19 (0x13)
|
||||
20, // input 85 (0x55 char 'U') = 20 (0x14)
|
||||
21, // input 86 (0x56 char 'V') = 21 (0x15)
|
||||
22, // input 87 (0x57 char 'W') = 22 (0x16)
|
||||
23, // input 88 (0x58 char 'X') = 23 (0x17)
|
||||
24, // input 89 (0x59 char 'Y') = 24 (0x18)
|
||||
25, // input 90 (0x5A char 'Z') = 25 (0x19)
|
||||
0, // input 65 (0x41 char 'A') => 0 (0x0)
|
||||
1, // input 66 (0x42 char 'B') => 1 (0x1)
|
||||
2, // input 67 (0x43 char 'C') => 2 (0x2)
|
||||
3, // input 68 (0x44 char 'D') => 3 (0x3)
|
||||
4, // input 69 (0x45 char 'E') => 4 (0x4)
|
||||
5, // input 70 (0x46 char 'F') => 5 (0x5)
|
||||
6, // input 71 (0x47 char 'G') => 6 (0x6)
|
||||
7, // input 72 (0x48 char 'H') => 7 (0x7)
|
||||
8, // input 73 (0x49 char 'I') => 8 (0x8)
|
||||
9, // input 74 (0x4A char 'J') => 9 (0x9)
|
||||
10, // input 75 (0x4B char 'K') => 10 (0xA)
|
||||
11, // input 76 (0x4C char 'L') => 11 (0xB)
|
||||
12, // input 77 (0x4D char 'M') => 12 (0xC)
|
||||
13, // input 78 (0x4E char 'N') => 13 (0xD)
|
||||
14, // input 79 (0x4F char 'O') => 14 (0xE)
|
||||
15, // input 80 (0x50 char 'P') => 15 (0xF)
|
||||
16, // input 81 (0x51 char 'Q') => 16 (0x10)
|
||||
17, // input 82 (0x52 char 'R') => 17 (0x11)
|
||||
18, // input 83 (0x53 char 'S') => 18 (0x12)
|
||||
19, // input 84 (0x54 char 'T') => 19 (0x13)
|
||||
20, // input 85 (0x55 char 'U') => 20 (0x14)
|
||||
21, // input 86 (0x56 char 'V') => 21 (0x15)
|
||||
22, // input 87 (0x57 char 'W') => 22 (0x16)
|
||||
23, // input 88 (0x58 char 'X') => 23 (0x17)
|
||||
24, // input 89 (0x59 char 'Y') => 24 (0x18)
|
||||
25, // input 90 (0x5A char 'Z') => 25 (0x19)
|
||||
INVALID_VALUE, // input 91 (0x5B)
|
||||
INVALID_VALUE, // input 92 (0x5C)
|
||||
INVALID_VALUE, // input 93 (0x5D)
|
||||
INVALID_VALUE, // input 94 (0x5E)
|
||||
63, // input 95 (0x5F char '_') = 63 (0x3F)
|
||||
63, // input 95 (0x5F char '_') => 63 (0x3F)
|
||||
INVALID_VALUE, // input 96 (0x60)
|
||||
26, // input 97 (0x61 char 'a') = 26 (0x1A)
|
||||
27, // input 98 (0x62 char 'b') = 27 (0x1B)
|
||||
28, // input 99 (0x63 char 'c') = 28 (0x1C)
|
||||
29, // input 100 (0x64 char 'd') = 29 (0x1D)
|
||||
30, // input 101 (0x65 char 'e') = 30 (0x1E)
|
||||
31, // input 102 (0x66 char 'f') = 31 (0x1F)
|
||||
32, // input 103 (0x67 char 'g') = 32 (0x20)
|
||||
33, // input 104 (0x68 char 'h') = 33 (0x21)
|
||||
34, // input 105 (0x69 char 'i') = 34 (0x22)
|
||||
35, // input 106 (0x6A char 'j') = 35 (0x23)
|
||||
36, // input 107 (0x6B char 'k') = 36 (0x24)
|
||||
37, // input 108 (0x6C char 'l') = 37 (0x25)
|
||||
38, // input 109 (0x6D char 'm') = 38 (0x26)
|
||||
39, // input 110 (0x6E char 'n') = 39 (0x27)
|
||||
40, // input 111 (0x6F char 'o') = 40 (0x28)
|
||||
41, // input 112 (0x70 char 'p') = 41 (0x29)
|
||||
42, // input 113 (0x71 char 'q') = 42 (0x2A)
|
||||
43, // input 114 (0x72 char 'r') = 43 (0x2B)
|
||||
44, // input 115 (0x73 char 's') = 44 (0x2C)
|
||||
45, // input 116 (0x74 char 't') = 45 (0x2D)
|
||||
46, // input 117 (0x75 char 'u') = 46 (0x2E)
|
||||
47, // input 118 (0x76 char 'v') = 47 (0x2F)
|
||||
48, // input 119 (0x77 char 'w') = 48 (0x30)
|
||||
49, // input 120 (0x78 char 'x') = 49 (0x31)
|
||||
50, // input 121 (0x79 char 'y') = 50 (0x32)
|
||||
51, // input 122 (0x7A char 'z') = 51 (0x33)
|
||||
26, // input 97 (0x61 char 'a') => 26 (0x1A)
|
||||
27, // input 98 (0x62 char 'b') => 27 (0x1B)
|
||||
28, // input 99 (0x63 char 'c') => 28 (0x1C)
|
||||
29, // input 100 (0x64 char 'd') => 29 (0x1D)
|
||||
30, // input 101 (0x65 char 'e') => 30 (0x1E)
|
||||
31, // input 102 (0x66 char 'f') => 31 (0x1F)
|
||||
32, // input 103 (0x67 char 'g') => 32 (0x20)
|
||||
33, // input 104 (0x68 char 'h') => 33 (0x21)
|
||||
34, // input 105 (0x69 char 'i') => 34 (0x22)
|
||||
35, // input 106 (0x6A char 'j') => 35 (0x23)
|
||||
36, // input 107 (0x6B char 'k') => 36 (0x24)
|
||||
37, // input 108 (0x6C char 'l') => 37 (0x25)
|
||||
38, // input 109 (0x6D char 'm') => 38 (0x26)
|
||||
39, // input 110 (0x6E char 'n') => 39 (0x27)
|
||||
40, // input 111 (0x6F char 'o') => 40 (0x28)
|
||||
41, // input 112 (0x70 char 'p') => 41 (0x29)
|
||||
42, // input 113 (0x71 char 'q') => 42 (0x2A)
|
||||
43, // input 114 (0x72 char 'r') => 43 (0x2B)
|
||||
44, // input 115 (0x73 char 's') => 44 (0x2C)
|
||||
45, // input 116 (0x74 char 't') => 45 (0x2D)
|
||||
46, // input 117 (0x75 char 'u') => 46 (0x2E)
|
||||
47, // input 118 (0x76 char 'v') => 47 (0x2F)
|
||||
48, // input 119 (0x77 char 'w') => 48 (0x30)
|
||||
49, // input 120 (0x78 char 'x') => 49 (0x31)
|
||||
50, // input 121 (0x79 char 'y') => 50 (0x32)
|
||||
51, // input 122 (0x7A char 'z') => 51 (0x33)
|
||||
INVALID_VALUE, // input 123 (0x7B)
|
||||
INVALID_VALUE, // input 124 (0x7C)
|
||||
INVALID_VALUE, // input 125 (0x7D)
|
||||
|
||||
Reference in New Issue
Block a user