• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef icu4x_Script_D_HPP
2 #define icu4x_Script_D_HPP
3 
4 #include <stdio.h>
5 #include <stdint.h>
6 #include <stddef.h>
7 #include <stdbool.h>
8 #include <memory>
9 #include <functional>
10 #include <optional>
11 #include "../diplomat_runtime.hpp"
12 
13 namespace icu4x {
14 class Script;
15 }
16 
17 
18 namespace icu4x {
19 namespace capi {
20     enum Script {
21       Script_Adlam = 167,
22       Script_Ahom = 161,
23       Script_AnatolianHieroglyphs = 156,
24       Script_Arabic = 2,
25       Script_Armenian = 3,
26       Script_Avestan = 117,
27       Script_Balinese = 62,
28       Script_Bamum = 130,
29       Script_BassaVah = 134,
30       Script_Batak = 63,
31       Script_Bengali = 4,
32       Script_Bhaiksuki = 168,
33       Script_Bopomofo = 5,
34       Script_Brahmi = 65,
35       Script_Braille = 46,
36       Script_Buginese = 55,
37       Script_Buhid = 44,
38       Script_CanadianAboriginal = 40,
39       Script_Carian = 104,
40       Script_CaucasianAlbanian = 159,
41       Script_Chakma = 118,
42       Script_Cham = 66,
43       Script_Cherokee = 6,
44       Script_Chorasmian = 189,
45       Script_Common = 0,
46       Script_Coptic = 7,
47       Script_Cuneiform = 101,
48       Script_Cypriot = 47,
49       Script_CyproMinoan = 193,
50       Script_Cyrillic = 8,
51       Script_Deseret = 9,
52       Script_Devanagari = 10,
53       Script_DivesAkuru = 190,
54       Script_Dogra = 178,
55       Script_Duployan = 135,
56       Script_EgyptianHieroglyphs = 71,
57       Script_Elbasan = 136,
58       Script_Elymaic = 185,
59       Script_Ethiopian = 11,
60       Script_Georgian = 12,
61       Script_Glagolitic = 56,
62       Script_Gothic = 13,
63       Script_Grantha = 137,
64       Script_Greek = 14,
65       Script_Gujarati = 15,
66       Script_GunjalaGondi = 179,
67       Script_Gurmukhi = 16,
68       Script_Han = 17,
69       Script_Hangul = 18,
70       Script_HanifiRohingya = 182,
71       Script_Hanunoo = 43,
72       Script_Hatran = 162,
73       Script_Hebrew = 19,
74       Script_Hiragana = 20,
75       Script_ImperialAramaic = 116,
76       Script_Inherited = 1,
77       Script_InscriptionalPahlavi = 122,
78       Script_InscriptionalParthian = 125,
79       Script_Javanese = 78,
80       Script_Kaithi = 120,
81       Script_Kannada = 21,
82       Script_Katakana = 22,
83       Script_Kawi = 198,
84       Script_KayahLi = 79,
85       Script_Kharoshthi = 57,
86       Script_KhitanSmallScript = 191,
87       Script_Khmer = 23,
88       Script_Khojki = 157,
89       Script_Khudawadi = 145,
90       Script_Lao = 24,
91       Script_Latin = 25,
92       Script_Lepcha = 82,
93       Script_Limbu = 48,
94       Script_LinearA = 83,
95       Script_LinearB = 49,
96       Script_Lisu = 131,
97       Script_Lycian = 107,
98       Script_Lydian = 108,
99       Script_Mahajani = 160,
100       Script_Makasar = 180,
101       Script_Malayalam = 26,
102       Script_Mandaic = 84,
103       Script_Manichaean = 121,
104       Script_Marchen = 169,
105       Script_MasaramGondi = 175,
106       Script_Medefaidrin = 181,
107       Script_MeeteiMayek = 115,
108       Script_MendeKikakui = 140,
109       Script_MeroiticCursive = 141,
110       Script_MeroiticHieroglyphs = 86,
111       Script_Miao = 92,
112       Script_Modi = 163,
113       Script_Mongolian = 27,
114       Script_Mro = 149,
115       Script_Multani = 164,
116       Script_Myanmar = 28,
117       Script_Nabataean = 143,
118       Script_NagMundari = 199,
119       Script_Nandinagari = 187,
120       Script_Nastaliq = 200,
121       Script_NewTaiLue = 59,
122       Script_Newa = 170,
123       Script_Nko = 87,
124       Script_Nushu = 150,
125       Script_NyiakengPuachueHmong = 186,
126       Script_Ogham = 29,
127       Script_OlChiki = 109,
128       Script_OldHungarian = 76,
129       Script_OldItalic = 30,
130       Script_OldNorthArabian = 142,
131       Script_OldPermic = 89,
132       Script_OldPersian = 61,
133       Script_OldSogdian = 184,
134       Script_OldSouthArabian = 133,
135       Script_OldTurkic = 88,
136       Script_OldUyghur = 194,
137       Script_Oriya = 31,
138       Script_Osage = 171,
139       Script_Osmanya = 50,
140       Script_PahawhHmong = 75,
141       Script_Palmyrene = 144,
142       Script_PauCinHau = 165,
143       Script_PhagsPa = 90,
144       Script_Phoenician = 91,
145       Script_PsalterPahlavi = 123,
146       Script_Rejang = 110,
147       Script_Runic = 32,
148       Script_Samaritan = 126,
149       Script_Saurashtra = 111,
150       Script_Sharada = 151,
151       Script_Shavian = 51,
152       Script_Siddham = 166,
153       Script_SignWriting = 112,
154       Script_Sinhala = 33,
155       Script_Sogdian = 183,
156       Script_SoraSompeng = 152,
157       Script_Soyombo = 176,
158       Script_Sundanese = 113,
159       Script_SylotiNagri = 58,
160       Script_Syriac = 34,
161       Script_Tagalog = 42,
162       Script_Tagbanwa = 45,
163       Script_TaiLe = 52,
164       Script_TaiTham = 106,
165       Script_TaiViet = 127,
166       Script_Takri = 153,
167       Script_Tamil = 35,
168       Script_Tangsa = 195,
169       Script_Tangut = 154,
170       Script_Telugu = 36,
171       Script_Thaana = 37,
172       Script_Thai = 38,
173       Script_Tibetan = 39,
174       Script_Tifinagh = 60,
175       Script_Tirhuta = 158,
176       Script_Toto = 196,
177       Script_Ugaritic = 53,
178       Script_Unknown = 103,
179       Script_Vai = 99,
180       Script_Vithkuqi = 197,
181       Script_Wancho = 188,
182       Script_WarangCiti = 146,
183       Script_Yezidi = 192,
184       Script_Yi = 41,
185       Script_ZanabazarSquare = 177,
186     };
187 
188     typedef struct Script_option {union { Script ok; }; bool is_ok; } Script_option;
189 } // namespace capi
190 } // namespace
191 
192 namespace icu4x {
193 class Script {
194 public:
195   enum Value {
196     Adlam = 167,
197     Ahom = 161,
198     AnatolianHieroglyphs = 156,
199     Arabic = 2,
200     Armenian = 3,
201     Avestan = 117,
202     Balinese = 62,
203     Bamum = 130,
204     BassaVah = 134,
205     Batak = 63,
206     Bengali = 4,
207     Bhaiksuki = 168,
208     Bopomofo = 5,
209     Brahmi = 65,
210     Braille = 46,
211     Buginese = 55,
212     Buhid = 44,
213     CanadianAboriginal = 40,
214     Carian = 104,
215     CaucasianAlbanian = 159,
216     Chakma = 118,
217     Cham = 66,
218     Cherokee = 6,
219     Chorasmian = 189,
220     Common = 0,
221     Coptic = 7,
222     Cuneiform = 101,
223     Cypriot = 47,
224     CyproMinoan = 193,
225     Cyrillic = 8,
226     Deseret = 9,
227     Devanagari = 10,
228     DivesAkuru = 190,
229     Dogra = 178,
230     Duployan = 135,
231     EgyptianHieroglyphs = 71,
232     Elbasan = 136,
233     Elymaic = 185,
234     Ethiopian = 11,
235     Georgian = 12,
236     Glagolitic = 56,
237     Gothic = 13,
238     Grantha = 137,
239     Greek = 14,
240     Gujarati = 15,
241     GunjalaGondi = 179,
242     Gurmukhi = 16,
243     Han = 17,
244     Hangul = 18,
245     HanifiRohingya = 182,
246     Hanunoo = 43,
247     Hatran = 162,
248     Hebrew = 19,
249     Hiragana = 20,
250     ImperialAramaic = 116,
251     Inherited = 1,
252     InscriptionalPahlavi = 122,
253     InscriptionalParthian = 125,
254     Javanese = 78,
255     Kaithi = 120,
256     Kannada = 21,
257     Katakana = 22,
258     Kawi = 198,
259     KayahLi = 79,
260     Kharoshthi = 57,
261     KhitanSmallScript = 191,
262     Khmer = 23,
263     Khojki = 157,
264     Khudawadi = 145,
265     Lao = 24,
266     Latin = 25,
267     Lepcha = 82,
268     Limbu = 48,
269     LinearA = 83,
270     LinearB = 49,
271     Lisu = 131,
272     Lycian = 107,
273     Lydian = 108,
274     Mahajani = 160,
275     Makasar = 180,
276     Malayalam = 26,
277     Mandaic = 84,
278     Manichaean = 121,
279     Marchen = 169,
280     MasaramGondi = 175,
281     Medefaidrin = 181,
282     MeeteiMayek = 115,
283     MendeKikakui = 140,
284     MeroiticCursive = 141,
285     MeroiticHieroglyphs = 86,
286     Miao = 92,
287     Modi = 163,
288     Mongolian = 27,
289     Mro = 149,
290     Multani = 164,
291     Myanmar = 28,
292     Nabataean = 143,
293     NagMundari = 199,
294     Nandinagari = 187,
295     Nastaliq = 200,
296     NewTaiLue = 59,
297     Newa = 170,
298     Nko = 87,
299     Nushu = 150,
300     NyiakengPuachueHmong = 186,
301     Ogham = 29,
302     OlChiki = 109,
303     OldHungarian = 76,
304     OldItalic = 30,
305     OldNorthArabian = 142,
306     OldPermic = 89,
307     OldPersian = 61,
308     OldSogdian = 184,
309     OldSouthArabian = 133,
310     OldTurkic = 88,
311     OldUyghur = 194,
312     Oriya = 31,
313     Osage = 171,
314     Osmanya = 50,
315     PahawhHmong = 75,
316     Palmyrene = 144,
317     PauCinHau = 165,
318     PhagsPa = 90,
319     Phoenician = 91,
320     PsalterPahlavi = 123,
321     Rejang = 110,
322     Runic = 32,
323     Samaritan = 126,
324     Saurashtra = 111,
325     Sharada = 151,
326     Shavian = 51,
327     Siddham = 166,
328     SignWriting = 112,
329     Sinhala = 33,
330     Sogdian = 183,
331     SoraSompeng = 152,
332     Soyombo = 176,
333     Sundanese = 113,
334     SylotiNagri = 58,
335     Syriac = 34,
336     Tagalog = 42,
337     Tagbanwa = 45,
338     TaiLe = 52,
339     TaiTham = 106,
340     TaiViet = 127,
341     Takri = 153,
342     Tamil = 35,
343     Tangsa = 195,
344     Tangut = 154,
345     Telugu = 36,
346     Thaana = 37,
347     Thai = 38,
348     Tibetan = 39,
349     Tifinagh = 60,
350     Tirhuta = 158,
351     Toto = 196,
352     Ugaritic = 53,
353     Unknown = 103,
354     Vai = 99,
355     Vithkuqi = 197,
356     Wancho = 188,
357     WarangCiti = 146,
358     Yezidi = 192,
359     Yi = 41,
360     ZanabazarSquare = 177,
361   };
362 
363   Script() = default;
364   // Implicit conversions between enum and ::Value
Script(Value v)365   constexpr Script(Value v) : value(v) {}
operator Value() const366   constexpr operator Value() const { return value; }
367   // Prevent usage as boolean value
368   explicit operator bool() const = delete;
369 
370   inline static icu4x::Script for_char(char32_t ch);
371 
372   inline std::optional<std::string_view> long_name();
373 
374   inline std::optional<std::string_view> short_name();
375 
376   inline uint16_t to_integer_value();
377 
378   inline static std::optional<icu4x::Script> from_integer_value(uint16_t other);
379 
380   inline icu4x::capi::Script AsFFI() const;
381   inline static icu4x::Script FromFFI(icu4x::capi::Script c_enum);
382 private:
383     Value value;
384 };
385 
386 } // namespace
387 #endif // icu4x_Script_D_HPP
388