1pub static CONVERT_MAP: phf::Map<char, char> = phf::phf_map! {
2 '"' => '"',
3 '#' => '#',
4 '$' => '$',
5 '%' => '%',
6 '&' => '&',
7 ''' => '\'',
8 '*' => '*',
9 '+' => '+',
10 '.' => '.',
11 '/' => '/',
12 '0' => '0',
13 '1' => '1',
14 '2' => '2',
15 '3' => '3',
16 '4' => '4',
17 '5' => '5',
18 '6' => '6',
19 '7' => '7',
20 '8' => '8',
21 '9' => '9',
22 '<' => '<',
23 '=' => '=',
24 '>' => '>',
25 '@' => '@',
26 'A' => 'A',
27 'B' => 'B',
28 'C' => 'C',
29 'D' => 'D',
30 'E' => 'E',
31 'F' => 'F',
32 'G' => 'G',
33 'H' => 'H',
34 'I' => 'I',
35 'J' => 'J',
36 'K' => 'K',
37 'L' => 'L',
38 'M' => 'M',
39 'N' => 'N',
40 'O' => 'O',
41 'P' => 'P',
42 'Q' => 'Q',
43 'R' => 'R',
44 'S' => 'S',
45 'T' => 'T',
46 'U' => 'U',
47 'V' => 'V',
48 'W' => 'W',
49 'X' => 'X',
50 'Y' => 'Y',
51 'Z' => 'Z',
52 '\' => '\\',
53 '^' => '^',
54 '`' => '`',
55 'a' => 'a',
56 'b' => 'b',
57 'c' => 'c',
58 'd' => 'd',
59 'e' => 'e',
60 'f' => 'f',
61 'g' => 'g',
62 'h' => 'h',
63 'i' => 'i',
64 'j' => 'j',
65 'k' => 'k',
66 'l' => 'l',
67 'm' => 'm',
68 'n' => 'n',
69 'o' => 'o',
70 'p' => 'p',
71 'q' => 'q',
72 'r' => 'r',
73 's' => 's',
74 't' => 't',
75 'u' => 'u',
76 'v' => 'v',
77 'w' => 'w',
78 'x' => 'x',
79 'y' => 'y',
80 'z' => 'z',
81 '{' => '{',
82 '|' => '|',
83 '}' => '}',
84 '。' => '。',
85 '「' => '「',
86 '」' => '」',
87 '、' => '、',
88 '・' => '·',
89 '•' => '·',
90 '─' => '—',
91 '―' => '—',
92 '∶' => ':',
93 '‧' => '·',
94 '・' => '·',
95 '﹑' => '、',
96 '〜' => '~',
97 '︰' => ':',
98 '?' => '?',
99 '!' => '!',
100 ',' => ',',
101 ';' => ';',
102 '(' => '(',
103 ')' => ')',
104};
105
106pub static CONVERT_T2S_MAP: phf::Map<char, char> = phf::phf_map! {
108 '妳' => '你',
109 '幺' => '么',
110 '姊' => '姐',
111 '擡' => '抬',
112 '牠' => '它',
113 '緖' => '绪',
114 '揹' => '背',
115 '唿' => '呼',
116 '疎' => '疏',
117 '勐' => '猛',
118 '飮' => '饮',
119};
120
121static CHINESE_PUNCTUATION: phf::Set<char> = phf::phf_set! {
123 '。',
124 '?',
125 '!',
126 ',',
127 '、',
128 ';',
129 ':',
130 '“',
131 '”',
132 '『',
133 '』',
134 '‘',
135 '’',
136 '「',
137 '」',
138 '(',
139 ')',
140 '[',
141 ']',
142 '〔',
143 '〕',
144 '【',
145 '】',
146 '—',
148 '…',
150 '-',
151 '-',
152 '~',
153 '·',
154 '《',
155 '》',
156 '〈',
157 '〉',
158 '﹏',
160 '_',
162 '.'
163};
164
165#[must_use]
166#[inline]
167pub fn is_chinese_punctuation(c: char) -> bool {
168 CHINESE_PUNCTUATION.contains(&c)
169}
170
171static ENGLISH_PUNCTUATION: phf::Set<char> = phf::phf_set! {
173 '.',
174 '?',
175 '!',
176 ',',
177 ':',
178 '…',
179 ';',
180 '-',
181 '–',
182 '—',
183 '(',
184 ')',
185 '[',
186 ']',
187 '{',
188 '}',
189 '"',
190 '\'',
191 '/',
192};
193
194#[must_use]
195#[inline]
196pub fn is_english_punctuation(c: char) -> bool {
197 ENGLISH_PUNCTUATION.contains(&c)
198}
199
200#[must_use]
201#[inline]
202pub fn is_punctuation(c: char) -> bool {
203 is_chinese_punctuation(c) || is_english_punctuation(c)
204}