1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 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
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
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
219
220
221
222
223
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
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
// DO NOT EDIT THIS FILE. IT WAS AUTOMATICALLY GENERATED BY:
//
//   yeslogic-ucd-generate joining-group --rust-enum /home/wmoore/Downloads/ucd-13.0
//
// Unicode version: 13.0.0.
//
// ucd-generate 0.4.1 is available on crates.io.

#[derive(Clone, Copy, Debug, Hash, Eq, PartialEq)]
pub enum JoiningGroup {
    AfricanFeh,
    AfricanNoon,
    AfricanQaf,
    Ain,
    Alaph,
    Alef,
    Beh,
    Beth,
    BurushaskiYehBarree,
    Dal,
    DalathRish,
    E,
    FarsiYeh,
    Fe,
    Feh,
    FinalSemkath,
    Gaf,
    Gamal,
    Hah,
    HamzaOnHehGoal,
    HanifiRohingyaKinnaYa,
    HanifiRohingyaPa,
    He,
    Heh,
    HehGoal,
    Heth,
    Kaf,
    Kaph,
    Khaph,
    KnottedHeh,
    Lam,
    Lamadh,
    MalayalamBha,
    MalayalamJa,
    MalayalamLla,
    MalayalamLlla,
    MalayalamNga,
    MalayalamNna,
    MalayalamNnna,
    MalayalamNya,
    MalayalamRa,
    MalayalamSsa,
    MalayalamTta,
    ManichaeanAleph,
    ManichaeanAyin,
    ManichaeanBeth,
    ManichaeanDaleth,
    ManichaeanDhamedh,
    ManichaeanFive,
    ManichaeanGimel,
    ManichaeanHeth,
    ManichaeanHundred,
    ManichaeanKaph,
    ManichaeanLamedh,
    ManichaeanMem,
    ManichaeanNun,
    ManichaeanOne,
    ManichaeanPe,
    ManichaeanQoph,
    ManichaeanResh,
    ManichaeanSadhe,
    ManichaeanSamekh,
    ManichaeanTaw,
    ManichaeanTen,
    ManichaeanTeth,
    ManichaeanThamedh,
    ManichaeanTwenty,
    ManichaeanWaw,
    ManichaeanYodh,
    ManichaeanZayin,
    Meem,
    Mim,
    NoJoiningGroup,
    Noon,
    Nun,
    Nya,
    Pe,
    Qaf,
    Qaph,
    Reh,
    ReversedPe,
    RohingyaYeh,
    Sad,
    Sadhe,
    Seen,
    Semkath,
    Shin,
    StraightWaw,
    SwashKaf,
    SyriacWaw,
    Tah,
    Taw,
    TehMarbuta,
    Teth,
    Waw,
    Yeh,
    YehBarree,
    YehWithTail,
    Yudh,
    YudhHe,
    Zain,
    Zhain,
}

#[allow(dead_code)]
pub const JOINING_GROUP: &'static [(u32, u32, JoiningGroup)] = &[
    (0, 1567, JoiningGroup::NoJoiningGroup),
    (1568, 1568, JoiningGroup::Yeh),
    (1569, 1569, JoiningGroup::NoJoiningGroup),
    (1570, 1571, JoiningGroup::Alef),
    (1572, 1572, JoiningGroup::Waw),
    (1573, 1573, JoiningGroup::Alef),
    (1574, 1574, JoiningGroup::Yeh),
    (1575, 1575, JoiningGroup::Alef),
    (1576, 1576, JoiningGroup::Beh),
    (1577, 1577, JoiningGroup::TehMarbuta),
    (1578, 1579, JoiningGroup::Beh),
    (1580, 1582, JoiningGroup::Hah),
    (1583, 1584, JoiningGroup::Dal),
    (1585, 1586, JoiningGroup::Reh),
    (1587, 1588, JoiningGroup::Seen),
    (1589, 1590, JoiningGroup::Sad),
    (1591, 1592, JoiningGroup::Tah),
    (1593, 1594, JoiningGroup::Ain),
    (1595, 1596, JoiningGroup::Gaf),
    (1597, 1599, JoiningGroup::FarsiYeh),
    (1600, 1600, JoiningGroup::NoJoiningGroup),
    (1601, 1601, JoiningGroup::Feh),
    (1602, 1602, JoiningGroup::Qaf),
    (1603, 1603, JoiningGroup::Kaf),
    (1604, 1604, JoiningGroup::Lam),
    (1605, 1605, JoiningGroup::Meem),
    (1606, 1606, JoiningGroup::Noon),
    (1607, 1607, JoiningGroup::Heh),
    (1608, 1608, JoiningGroup::Waw),
    (1609, 1610, JoiningGroup::Yeh),
    (1611, 1645, JoiningGroup::NoJoiningGroup),
    (1646, 1646, JoiningGroup::Beh),
    (1647, 1647, JoiningGroup::Qaf),
    (1648, 1648, JoiningGroup::NoJoiningGroup),
    (1649, 1651, JoiningGroup::Alef),
    (1652, 1652, JoiningGroup::NoJoiningGroup),
    (1653, 1653, JoiningGroup::Alef),
    (1654, 1655, JoiningGroup::Waw),
    (1656, 1656, JoiningGroup::Yeh),
    (1657, 1664, JoiningGroup::Beh),
    (1665, 1671, JoiningGroup::Hah),
    (1672, 1680, JoiningGroup::Dal),
    (1681, 1689, JoiningGroup::Reh),
    (1690, 1692, JoiningGroup::Seen),
    (1693, 1694, JoiningGroup::Sad),
    (1695, 1695, JoiningGroup::Tah),
    (1696, 1696, JoiningGroup::Ain),
    (1697, 1702, JoiningGroup::Feh),
    (1703, 1704, JoiningGroup::Qaf),
    (1705, 1705, JoiningGroup::Gaf),
    (1706, 1706, JoiningGroup::SwashKaf),
    (1707, 1707, JoiningGroup::Gaf),
    (1708, 1710, JoiningGroup::Kaf),
    (1711, 1716, JoiningGroup::Gaf),
    (1717, 1720, JoiningGroup::Lam),
    (1721, 1724, JoiningGroup::Noon),
    (1725, 1725, JoiningGroup::Nya),
    (1726, 1726, JoiningGroup::KnottedHeh),
    (1727, 1727, JoiningGroup::Hah),
    (1728, 1728, JoiningGroup::TehMarbuta),
    (1729, 1730, JoiningGroup::HehGoal),
    (1731, 1731, JoiningGroup::HamzaOnHehGoal),
    (1732, 1739, JoiningGroup::Waw),
    (1740, 1740, JoiningGroup::FarsiYeh),
    (1741, 1741, JoiningGroup::YehWithTail),
    (1742, 1742, JoiningGroup::FarsiYeh),
    (1743, 1743, JoiningGroup::Waw),
    (1744, 1745, JoiningGroup::Yeh),
    (1746, 1747, JoiningGroup::YehBarree),
    (1748, 1748, JoiningGroup::NoJoiningGroup),
    (1749, 1749, JoiningGroup::TehMarbuta),
    (1750, 1773, JoiningGroup::NoJoiningGroup),
    (1774, 1774, JoiningGroup::Dal),
    (1775, 1775, JoiningGroup::Reh),
    (1776, 1785, JoiningGroup::NoJoiningGroup),
    (1786, 1786, JoiningGroup::Seen),
    (1787, 1787, JoiningGroup::Sad),
    (1788, 1788, JoiningGroup::Ain),
    (1789, 1790, JoiningGroup::NoJoiningGroup),
    (1791, 1791, JoiningGroup::KnottedHeh),
    (1792, 1807, JoiningGroup::NoJoiningGroup),
    (1808, 1808, JoiningGroup::Alaph),
    (1809, 1809, JoiningGroup::NoJoiningGroup),
    (1810, 1810, JoiningGroup::Beth),
    (1811, 1812, JoiningGroup::Gamal),
    (1813, 1814, JoiningGroup::DalathRish),
    (1815, 1815, JoiningGroup::He),
    (1816, 1816, JoiningGroup::SyriacWaw),
    (1817, 1817, JoiningGroup::Zain),
    (1818, 1818, JoiningGroup::Heth),
    (1819, 1820, JoiningGroup::Teth),
    (1821, 1821, JoiningGroup::Yudh),
    (1822, 1822, JoiningGroup::YudhHe),
    (1823, 1823, JoiningGroup::Kaph),
    (1824, 1824, JoiningGroup::Lamadh),
    (1825, 1825, JoiningGroup::Mim),
    (1826, 1826, JoiningGroup::Nun),
    (1827, 1827, JoiningGroup::Semkath),
    (1828, 1828, JoiningGroup::FinalSemkath),
    (1829, 1829, JoiningGroup::E),
    (1830, 1830, JoiningGroup::Pe),
    (1831, 1831, JoiningGroup::ReversedPe),
    (1832, 1832, JoiningGroup::Sadhe),
    (1833, 1833, JoiningGroup::Qaph),
    (1834, 1834, JoiningGroup::DalathRish),
    (1835, 1835, JoiningGroup::Shin),
    (1836, 1836, JoiningGroup::Taw),
    (1837, 1837, JoiningGroup::Beth),
    (1838, 1838, JoiningGroup::Gamal),
    (1839, 1839, JoiningGroup::DalathRish),
    (1840, 1868, JoiningGroup::NoJoiningGroup),
    (1869, 1869, JoiningGroup::Zhain),
    (1870, 1870, JoiningGroup::Khaph),
    (1871, 1871, JoiningGroup::Fe),
    (1872, 1878, JoiningGroup::Beh),
    (1879, 1880, JoiningGroup::Hah),
    (1881, 1882, JoiningGroup::Dal),
    (1883, 1883, JoiningGroup::Reh),
    (1884, 1884, JoiningGroup::Seen),
    (1885, 1887, JoiningGroup::Ain),
    (1888, 1889, JoiningGroup::Feh),
    (1890, 1892, JoiningGroup::Gaf),
    (1893, 1894, JoiningGroup::Meem),
    (1895, 1897, JoiningGroup::Noon),
    (1898, 1898, JoiningGroup::Lam),
    (1899, 1900, JoiningGroup::Reh),
    (1901, 1901, JoiningGroup::Seen),
    (1902, 1903, JoiningGroup::Hah),
    (1904, 1904, JoiningGroup::Seen),
    (1905, 1905, JoiningGroup::Reh),
    (1906, 1906, JoiningGroup::Hah),
    (1907, 1908, JoiningGroup::Alef),
    (1909, 1910, JoiningGroup::FarsiYeh),
    (1911, 1911, JoiningGroup::Yeh),
    (1912, 1913, JoiningGroup::Waw),
    (1914, 1915, JoiningGroup::BurushaskiYehBarree),
    (1916, 1916, JoiningGroup::Hah),
    (1917, 1918, JoiningGroup::Seen),
    (1919, 1919, JoiningGroup::Kaf),
    (1920, 2143, JoiningGroup::NoJoiningGroup),
    (2144, 2144, JoiningGroup::MalayalamNga),
    (2145, 2145, JoiningGroup::MalayalamJa),
    (2146, 2146, JoiningGroup::MalayalamNya),
    (2147, 2147, JoiningGroup::MalayalamTta),
    (2148, 2148, JoiningGroup::MalayalamNna),
    (2149, 2149, JoiningGroup::MalayalamNnna),
    (2150, 2150, JoiningGroup::MalayalamBha),
    (2151, 2151, JoiningGroup::MalayalamRa),
    (2152, 2152, JoiningGroup::MalayalamLla),
    (2153, 2153, JoiningGroup::MalayalamLlla),
    (2154, 2154, JoiningGroup::MalayalamSsa),
    (2155, 2207, JoiningGroup::NoJoiningGroup),
    (2208, 2209, JoiningGroup::Beh),
    (2210, 2210, JoiningGroup::Hah),
    (2211, 2211, JoiningGroup::Tah),
    (2212, 2212, JoiningGroup::Feh),
    (2213, 2213, JoiningGroup::Qaf),
    (2214, 2214, JoiningGroup::Lam),
    (2215, 2215, JoiningGroup::Meem),
    (2216, 2217, JoiningGroup::Yeh),
    (2218, 2218, JoiningGroup::Reh),
    (2219, 2219, JoiningGroup::Waw),
    (2220, 2220, JoiningGroup::RohingyaYeh),
    (2221, 2221, JoiningGroup::NoJoiningGroup),
    (2222, 2222, JoiningGroup::Dal),
    (2223, 2223, JoiningGroup::Sad),
    (2224, 2224, JoiningGroup::Gaf),
    (2225, 2225, JoiningGroup::StraightWaw),
    (2226, 2226, JoiningGroup::Reh),
    (2227, 2227, JoiningGroup::Ain),
    (2228, 2228, JoiningGroup::Kaf),
    (2229, 2229, JoiningGroup::NoJoiningGroup),
    (2230, 2232, JoiningGroup::Beh),
    (2233, 2233, JoiningGroup::Reh),
    (2234, 2234, JoiningGroup::Yeh),
    (2235, 2235, JoiningGroup::AfricanFeh),
    (2236, 2236, JoiningGroup::AfricanQaf),
    (2237, 2237, JoiningGroup::AfricanNoon),
    (2238, 2240, JoiningGroup::Beh),
    (2241, 2241, JoiningGroup::Hah),
    (2242, 2242, JoiningGroup::Gaf),
    (2243, 2243, JoiningGroup::Ain),
    (2244, 2244, JoiningGroup::AfricanQaf),
    (2245, 2246, JoiningGroup::Hah),
    (2247, 2247, JoiningGroup::Lam),
    (2248, 68287, JoiningGroup::NoJoiningGroup),
    (68288, 68288, JoiningGroup::ManichaeanAleph),
    (68289, 68290, JoiningGroup::ManichaeanBeth),
    (68291, 68292, JoiningGroup::ManichaeanGimel),
    (68293, 68293, JoiningGroup::ManichaeanDaleth),
    (68294, 68294, JoiningGroup::NoJoiningGroup),
    (68295, 68295, JoiningGroup::ManichaeanWaw),
    (68296, 68296, JoiningGroup::NoJoiningGroup),
    (68297, 68298, JoiningGroup::ManichaeanZayin),
    (68299, 68300, JoiningGroup::NoJoiningGroup),
    (68301, 68301, JoiningGroup::ManichaeanHeth),
    (68302, 68302, JoiningGroup::ManichaeanTeth),
    (68303, 68303, JoiningGroup::ManichaeanYodh),
    (68304, 68306, JoiningGroup::ManichaeanKaph),
    (68307, 68307, JoiningGroup::ManichaeanLamedh),
    (68308, 68308, JoiningGroup::ManichaeanDhamedh),
    (68309, 68309, JoiningGroup::ManichaeanThamedh),
    (68310, 68310, JoiningGroup::ManichaeanMem),
    (68311, 68311, JoiningGroup::ManichaeanNun),
    (68312, 68312, JoiningGroup::ManichaeanSamekh),
    (68313, 68314, JoiningGroup::ManichaeanAyin),
    (68315, 68316, JoiningGroup::ManichaeanPe),
    (68317, 68317, JoiningGroup::ManichaeanSadhe),
    (68318, 68320, JoiningGroup::ManichaeanQoph),
    (68321, 68321, JoiningGroup::ManichaeanResh),
    (68322, 68323, JoiningGroup::NoJoiningGroup),
    (68324, 68324, JoiningGroup::ManichaeanTaw),
    (68325, 68330, JoiningGroup::NoJoiningGroup),
    (68331, 68331, JoiningGroup::ManichaeanOne),
    (68332, 68332, JoiningGroup::ManichaeanFive),
    (68333, 68333, JoiningGroup::ManichaeanTen),
    (68334, 68334, JoiningGroup::ManichaeanTwenty),
    (68335, 68335, JoiningGroup::ManichaeanHundred),
    (68336, 68865, JoiningGroup::NoJoiningGroup),
    (68866, 68866, JoiningGroup::HanifiRohingyaPa),
    (68867, 68872, JoiningGroup::NoJoiningGroup),
    (68873, 68873, JoiningGroup::HanifiRohingyaPa),
    (68874, 68888, JoiningGroup::NoJoiningGroup),
    (68889, 68889, JoiningGroup::HanifiRohingyaKinnaYa),
    (68890, 68891, JoiningGroup::NoJoiningGroup),
    (68892, 68892, JoiningGroup::HanifiRohingyaPa),
    (68893, 68893, JoiningGroup::NoJoiningGroup),
    (68894, 68894, JoiningGroup::HanifiRohingyaKinnaYa),
    (68895, 68895, JoiningGroup::NoJoiningGroup),
    (68896, 68896, JoiningGroup::HanifiRohingyaKinnaYa),
    (68897, 68898, JoiningGroup::NoJoiningGroup),
    (68899, 68899, JoiningGroup::HanifiRohingyaKinnaYa),
    (68900, 1114111, JoiningGroup::NoJoiningGroup),
];