ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
Script.hpp
Go to the documentation of this file.
1#ifndef icu4x_Script_HPP
2#define icu4x_Script_HPP
3
4#include "Script.d.hpp"
5
6#include <stdio.h>
7#include <stdint.h>
8#include <stddef.h>
9#include <stdbool.h>
10#include <memory>
11#include <functional>
12#include <optional>
13#include <cstdlib>
15
16
17namespace icu4x {
18namespace capi {
19 extern "C" {
20
21 icu4x::capi::Script icu4x_Script_for_char_mv1(char32_t ch);
22
23 typedef struct icu4x_Script_long_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_Script_long_name_mv1_result;
24 icu4x_Script_long_name_mv1_result icu4x_Script_long_name_mv1(icu4x::capi::Script self);
25
26 typedef struct icu4x_Script_short_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_Script_short_name_mv1_result;
27 icu4x_Script_short_name_mv1_result icu4x_Script_short_name_mv1(icu4x::capi::Script self);
28
29 uint16_t icu4x_Script_to_integer_value_mv1(icu4x::capi::Script self);
30
31 typedef struct icu4x_Script_from_integer_value_mv1_result {union {icu4x::capi::Script ok; }; bool is_ok;} icu4x_Script_from_integer_value_mv1_result;
32 icu4x_Script_from_integer_value_mv1_result icu4x_Script_from_integer_value_mv1(uint16_t other);
33
34 } // extern "C"
35} // namespace capi
36} // namespace
37
38inline icu4x::capi::Script icu4x::Script::AsFFI() const {
39 return static_cast<icu4x::capi::Script>(value);
40}
41
42inline icu4x::Script icu4x::Script::FromFFI(icu4x::capi::Script c_enum) {
43 switch (c_enum) {
44 case icu4x::capi::Script_Adlam:
45 case icu4x::capi::Script_Ahom:
46 case icu4x::capi::Script_AnatolianHieroglyphs:
47 case icu4x::capi::Script_Arabic:
48 case icu4x::capi::Script_Armenian:
49 case icu4x::capi::Script_Avestan:
50 case icu4x::capi::Script_Balinese:
51 case icu4x::capi::Script_Bamum:
52 case icu4x::capi::Script_BassaVah:
53 case icu4x::capi::Script_Batak:
54 case icu4x::capi::Script_Bengali:
55 case icu4x::capi::Script_Bhaiksuki:
56 case icu4x::capi::Script_Bopomofo:
57 case icu4x::capi::Script_Brahmi:
58 case icu4x::capi::Script_Braille:
59 case icu4x::capi::Script_Buginese:
60 case icu4x::capi::Script_Buhid:
61 case icu4x::capi::Script_CanadianAboriginal:
62 case icu4x::capi::Script_Carian:
63 case icu4x::capi::Script_CaucasianAlbanian:
64 case icu4x::capi::Script_Chakma:
65 case icu4x::capi::Script_Cham:
66 case icu4x::capi::Script_Cherokee:
67 case icu4x::capi::Script_Chorasmian:
68 case icu4x::capi::Script_Common:
69 case icu4x::capi::Script_Coptic:
70 case icu4x::capi::Script_Cuneiform:
71 case icu4x::capi::Script_Cypriot:
72 case icu4x::capi::Script_CyproMinoan:
73 case icu4x::capi::Script_Cyrillic:
74 case icu4x::capi::Script_Deseret:
75 case icu4x::capi::Script_Devanagari:
76 case icu4x::capi::Script_DivesAkuru:
77 case icu4x::capi::Script_Dogra:
78 case icu4x::capi::Script_Duployan:
79 case icu4x::capi::Script_EgyptianHieroglyphs:
80 case icu4x::capi::Script_Elbasan:
81 case icu4x::capi::Script_Elymaic:
82 case icu4x::capi::Script_Ethiopian:
83 case icu4x::capi::Script_Georgian:
84 case icu4x::capi::Script_Glagolitic:
85 case icu4x::capi::Script_Gothic:
86 case icu4x::capi::Script_Grantha:
87 case icu4x::capi::Script_Greek:
88 case icu4x::capi::Script_Gujarati:
89 case icu4x::capi::Script_GunjalaGondi:
90 case icu4x::capi::Script_Gurmukhi:
91 case icu4x::capi::Script_Han:
92 case icu4x::capi::Script_Hangul:
93 case icu4x::capi::Script_HanifiRohingya:
94 case icu4x::capi::Script_Hanunoo:
95 case icu4x::capi::Script_Hatran:
96 case icu4x::capi::Script_Hebrew:
97 case icu4x::capi::Script_Hiragana:
98 case icu4x::capi::Script_ImperialAramaic:
99 case icu4x::capi::Script_Inherited:
100 case icu4x::capi::Script_InscriptionalPahlavi:
101 case icu4x::capi::Script_InscriptionalParthian:
102 case icu4x::capi::Script_Javanese:
103 case icu4x::capi::Script_Kaithi:
104 case icu4x::capi::Script_Kannada:
105 case icu4x::capi::Script_Katakana:
106 case icu4x::capi::Script_Kawi:
107 case icu4x::capi::Script_KayahLi:
108 case icu4x::capi::Script_Kharoshthi:
109 case icu4x::capi::Script_KhitanSmallScript:
110 case icu4x::capi::Script_Khmer:
111 case icu4x::capi::Script_Khojki:
112 case icu4x::capi::Script_Khudawadi:
113 case icu4x::capi::Script_Lao:
114 case icu4x::capi::Script_Latin:
115 case icu4x::capi::Script_Lepcha:
116 case icu4x::capi::Script_Limbu:
117 case icu4x::capi::Script_LinearA:
118 case icu4x::capi::Script_LinearB:
119 case icu4x::capi::Script_Lisu:
120 case icu4x::capi::Script_Lycian:
121 case icu4x::capi::Script_Lydian:
122 case icu4x::capi::Script_Mahajani:
123 case icu4x::capi::Script_Makasar:
124 case icu4x::capi::Script_Malayalam:
125 case icu4x::capi::Script_Mandaic:
126 case icu4x::capi::Script_Manichaean:
127 case icu4x::capi::Script_Marchen:
128 case icu4x::capi::Script_MasaramGondi:
129 case icu4x::capi::Script_Medefaidrin:
130 case icu4x::capi::Script_MeeteiMayek:
131 case icu4x::capi::Script_MendeKikakui:
132 case icu4x::capi::Script_MeroiticCursive:
133 case icu4x::capi::Script_MeroiticHieroglyphs:
134 case icu4x::capi::Script_Miao:
135 case icu4x::capi::Script_Modi:
136 case icu4x::capi::Script_Mongolian:
137 case icu4x::capi::Script_Mro:
138 case icu4x::capi::Script_Multani:
139 case icu4x::capi::Script_Myanmar:
140 case icu4x::capi::Script_Nabataean:
141 case icu4x::capi::Script_NagMundari:
142 case icu4x::capi::Script_Nandinagari:
143 case icu4x::capi::Script_Nastaliq:
144 case icu4x::capi::Script_NewTaiLue:
145 case icu4x::capi::Script_Newa:
146 case icu4x::capi::Script_Nko:
147 case icu4x::capi::Script_Nushu:
148 case icu4x::capi::Script_NyiakengPuachueHmong:
149 case icu4x::capi::Script_Ogham:
150 case icu4x::capi::Script_OlChiki:
151 case icu4x::capi::Script_OldHungarian:
152 case icu4x::capi::Script_OldItalic:
153 case icu4x::capi::Script_OldNorthArabian:
154 case icu4x::capi::Script_OldPermic:
155 case icu4x::capi::Script_OldPersian:
156 case icu4x::capi::Script_OldSogdian:
157 case icu4x::capi::Script_OldSouthArabian:
158 case icu4x::capi::Script_OldTurkic:
159 case icu4x::capi::Script_OldUyghur:
160 case icu4x::capi::Script_Oriya:
161 case icu4x::capi::Script_Osage:
162 case icu4x::capi::Script_Osmanya:
163 case icu4x::capi::Script_PahawhHmong:
164 case icu4x::capi::Script_Palmyrene:
165 case icu4x::capi::Script_PauCinHau:
166 case icu4x::capi::Script_PhagsPa:
167 case icu4x::capi::Script_Phoenician:
168 case icu4x::capi::Script_PsalterPahlavi:
169 case icu4x::capi::Script_Rejang:
170 case icu4x::capi::Script_Runic:
171 case icu4x::capi::Script_Samaritan:
172 case icu4x::capi::Script_Saurashtra:
173 case icu4x::capi::Script_Sharada:
174 case icu4x::capi::Script_Shavian:
175 case icu4x::capi::Script_Siddham:
176 case icu4x::capi::Script_SignWriting:
177 case icu4x::capi::Script_Sinhala:
178 case icu4x::capi::Script_Sogdian:
179 case icu4x::capi::Script_SoraSompeng:
180 case icu4x::capi::Script_Soyombo:
181 case icu4x::capi::Script_Sundanese:
182 case icu4x::capi::Script_SylotiNagri:
183 case icu4x::capi::Script_Syriac:
184 case icu4x::capi::Script_Tagalog:
185 case icu4x::capi::Script_Tagbanwa:
186 case icu4x::capi::Script_TaiLe:
187 case icu4x::capi::Script_TaiTham:
188 case icu4x::capi::Script_TaiViet:
189 case icu4x::capi::Script_Takri:
190 case icu4x::capi::Script_Tamil:
191 case icu4x::capi::Script_Tangsa:
192 case icu4x::capi::Script_Tangut:
193 case icu4x::capi::Script_Telugu:
194 case icu4x::capi::Script_Thaana:
195 case icu4x::capi::Script_Thai:
196 case icu4x::capi::Script_Tibetan:
197 case icu4x::capi::Script_Tifinagh:
198 case icu4x::capi::Script_Tirhuta:
199 case icu4x::capi::Script_Toto:
200 case icu4x::capi::Script_Ugaritic:
201 case icu4x::capi::Script_Unknown:
202 case icu4x::capi::Script_Vai:
203 case icu4x::capi::Script_Vithkuqi:
204 case icu4x::capi::Script_Wancho:
205 case icu4x::capi::Script_WarangCiti:
206 case icu4x::capi::Script_Yezidi:
207 case icu4x::capi::Script_Yi:
208 case icu4x::capi::Script_ZanabazarSquare:
209 return static_cast<icu4x::Script::Value>(c_enum);
210 default:
211 std::abort();
212 }
213}
214
216 auto result = icu4x::capi::icu4x_Script_for_char_mv1(ch);
217 return icu4x::Script::FromFFI(result);
218}
219
220inline std::optional<std::string_view> icu4x::Script::long_name() const {
221 auto result = icu4x::capi::icu4x_Script_long_name_mv1(this->AsFFI());
222 return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
223}
224
225inline std::optional<std::string_view> icu4x::Script::short_name() const {
226 auto result = icu4x::capi::icu4x_Script_short_name_mv1(this->AsFFI());
227 return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
228}
229
230inline uint16_t icu4x::Script::to_integer_value() const {
231 auto result = icu4x::capi::icu4x_Script_to_integer_value_mv1(this->AsFFI());
232 return result;
233}
234
235inline std::optional<icu4x::Script> icu4x::Script::from_integer_value(uint16_t other) {
236 auto result = icu4x::capi::icu4x_Script_from_integer_value_mv1(other);
237 return result.is_ok ? std::optional<icu4x::Script>(icu4x::Script::FromFFI(result.ok)) : std::nullopt;
238}
239#endif // icu4x_Script_HPP
Definition Script.d.hpp:197
uint16_t to_integer_value() const
Definition Script.hpp:230
std::optional< std::string_view > short_name() const
Definition Script.hpp:225
std::optional< std::string_view > long_name() const
Definition Script.hpp:220
static icu4x::Script for_char(char32_t ch)
Definition Script.hpp:215
Value
Definition Script.d.hpp:199
static std::optional< icu4x::Script > from_integer_value(uint16_t other)
Definition Script.hpp:235
Definition Bidi.d.hpp:14