def unicode_is_wide

cli@0.2.0.0 · cli.bend:125

import cli@0.2.0.0/cli.bend as Cli
import Base

125# Unicode 15.1 East Asian Wide and Fullwidth ranges, including reserved ranges.
126# Source: https://www.unicode.org/Public/15.1.0/ucd/EastAsianWidth.txt
127def unicode_is_wide(code: U32) -> Bool:
128  contains_range([
129    CodeRange{4352, 4447},
130    CodeRange{8986, 8987},
131    CodeRange{9001, 9002},
132    CodeRange{9193, 9196},
133    CodeRange{9200, 9200},
134    CodeRange{9203, 9203},
135    CodeRange{9725, 9726},
136    CodeRange{9748, 9749},
137    CodeRange{9800, 9811},
138    CodeRange{9855, 9855},
139    CodeRange{9875, 9875},
140    CodeRange{9889, 9889},
141    CodeRange{9898, 9899},
142    CodeRange{9917, 9918},
143    CodeRange{9924, 9925},
144    CodeRange{9934, 9934},
145    CodeRange{9940, 9940},
146    CodeRange{9962, 9962},
147    CodeRange{9970, 9971},
148    CodeRange{9973, 9973},
149    CodeRange{9978, 9978},
150    CodeRange{9981, 9981},
151    CodeRange{9989, 9989},
152    CodeRange{9994, 9995},
153    CodeRange{10024, 10024},
154    CodeRange{10060, 10060},
155    CodeRange{10062, 10062},
156    CodeRange{10067, 10069},
157    CodeRange{10071, 10071},
158    CodeRange{10133, 10135},
159    CodeRange{10160, 10160},
160    CodeRange{10175, 10175},
161    CodeRange{11035, 11036},
162    CodeRange{11088, 11088},
163    CodeRange{11093, 11093},
164    CodeRange{11904, 11929},
165    CodeRange{11931, 12019},
166    CodeRange{12032, 12245},
167    CodeRange{12272, 12350},
168    CodeRange{12353, 12438},
169    CodeRange{12441, 12543},
170    CodeRange{12549, 12591},
171    CodeRange{12593, 12686},
172    CodeRange{12688, 12771},
173    CodeRange{12783, 12830},
174    CodeRange{12832, 12871},
175    CodeRange{12880, 19903},
176    CodeRange{19968, 42124},
177    CodeRange{42128, 42182},
178    CodeRange{43360, 43388},
179    CodeRange{44032, 55203},
180    CodeRange{63744, 64255},
181    CodeRange{65040, 65049},
182    CodeRange{65072, 65106},
183    CodeRange{65108, 65126},
184    CodeRange{65128, 65131},
185    CodeRange{65281, 65376},
186    CodeRange{65504, 65510},
187    CodeRange{94176, 94180},
188    CodeRange{94192, 94193},
189    CodeRange{94208, 100343},
190    CodeRange{100352, 101589},
191    CodeRange{101632, 101640},
192    CodeRange{110576, 110579},
193    CodeRange{110581, 110587},
194    CodeRange{110589, 110590},
195    CodeRange{110592, 110882},
196    CodeRange{110898, 110898},
197    CodeRange{110928, 110930},
198    CodeRange{110933, 110933},
199    CodeRange{110948, 110951},
200    CodeRange{110960, 111355},
201    CodeRange{126980, 126980},
202    CodeRange{127183, 127183},
203    CodeRange{127374, 127374},
204    CodeRange{127377, 127386},
205    CodeRange{127488, 127490},
206    CodeRange{127504, 127547},
207    CodeRange{127552, 127560},
208    CodeRange{127568, 127569},
209    CodeRange{127584, 127589},
210    CodeRange{127744, 127776},
211    CodeRange{127789, 127797},
212    CodeRange{127799, 127868},
213    CodeRange{127870, 127891},
214    CodeRange{127904, 127946},
215    CodeRange{127951, 127955},
216    CodeRange{127968, 127984},
217    CodeRange{127988, 127988},
218    CodeRange{127992, 128062},
219    CodeRange{128064, 128064},
220    CodeRange{128066, 128252},
221    CodeRange{128255, 128317},
222    CodeRange{128331, 128334},
223    CodeRange{128336, 128359},
224    CodeRange{128378, 128378},
225    CodeRange{128405, 128406},
226    CodeRange{128420, 128420},
227    CodeRange{128507, 128591},
228    CodeRange{128640, 128709},
229    CodeRange{128716, 128716},
230    CodeRange{128720, 128722},
231    CodeRange{128725, 128727},
232    CodeRange{128732, 128735},
233    CodeRange{128747, 128748},
234    CodeRange{128756, 128764},
235    CodeRange{128992, 129003},
236    CodeRange{129008, 129008},
237    CodeRange{129292, 129338},
238    CodeRange{129340, 129349},
239    CodeRange{129351, 129535},
240    CodeRange{129648, 129660},
241    CodeRange{129664, 129672},
242    CodeRange{129680, 129725},
243    CodeRange{129727, 129733},
244    CodeRange{129742, 129755},
245    CodeRange{129760, 129768},
246    CodeRange{129776, 129784},
247    CodeRange{131072, 196605},
248    CodeRange{196608, 262141},
249  ], code)

Uses (5)

Used by (2)