ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
CaseMapper.hpp
Go to the documentation of this file.
1#ifndef ICU4X_CaseMapper_HPP
2#define ICU4X_CaseMapper_HPP
3
4#include "CaseMapper.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#include "DataError.hpp"
16#include "DataProvider.hpp"
17#include "Locale.hpp"
19#include "diplomat_runtime.hpp"
20
21
22namespace icu4x {
23namespace capi {
24 extern "C" {
25
26 icu4x::capi::CaseMapper* icu4x_CaseMapper_create_mv1(void);
27
28 typedef struct icu4x_CaseMapper_create_with_provider_mv1_result {union {icu4x::capi::CaseMapper* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_CaseMapper_create_with_provider_mv1_result;
29 icu4x_CaseMapper_create_with_provider_mv1_result icu4x_CaseMapper_create_with_provider_mv1(const icu4x::capi::DataProvider* provider);
30
31 void icu4x_CaseMapper_lowercase_mv1(const icu4x::capi::CaseMapper* self, icu4x::diplomat::capi::DiplomatStringView s, const icu4x::capi::Locale* locale, icu4x::diplomat::capi::DiplomatWrite* write);
32
33 void icu4x_CaseMapper_uppercase_mv1(const icu4x::capi::CaseMapper* self, icu4x::diplomat::capi::DiplomatStringView s, const icu4x::capi::Locale* locale, icu4x::diplomat::capi::DiplomatWrite* write);
34
35 void icu4x_CaseMapper_lowercase_with_compiled_data_mv1(icu4x::diplomat::capi::DiplomatStringView s, const icu4x::capi::Locale* locale, icu4x::diplomat::capi::DiplomatWrite* write);
36
37 void icu4x_CaseMapper_uppercase_with_compiled_data_mv1(icu4x::diplomat::capi::DiplomatStringView s, const icu4x::capi::Locale* locale, icu4x::diplomat::capi::DiplomatWrite* write);
38
39 void icu4x_CaseMapper_titlecase_segment_with_only_case_data_v1_mv1(const icu4x::capi::CaseMapper* self, icu4x::diplomat::capi::DiplomatStringView s, const icu4x::capi::Locale* locale, icu4x::capi::TitlecaseOptionsV1 options, icu4x::diplomat::capi::DiplomatWrite* write);
40
41 void icu4x_CaseMapper_fold_mv1(const icu4x::capi::CaseMapper* self, icu4x::diplomat::capi::DiplomatStringView s, icu4x::diplomat::capi::DiplomatWrite* write);
42
43 void icu4x_CaseMapper_fold_turkic_mv1(const icu4x::capi::CaseMapper* self, icu4x::diplomat::capi::DiplomatStringView s, icu4x::diplomat::capi::DiplomatWrite* write);
44
45 void icu4x_CaseMapper_add_case_closure_to_mv1(const icu4x::capi::CaseMapper* self, char32_t c, icu4x::capi::CodePointSetBuilder* builder);
46
47 char32_t icu4x_CaseMapper_simple_lowercase_mv1(const icu4x::capi::CaseMapper* self, char32_t ch);
48
49 char32_t icu4x_CaseMapper_simple_lowercase_with_compiled_data_mv1(char32_t ch);
50
51 char32_t icu4x_CaseMapper_simple_uppercase_mv1(const icu4x::capi::CaseMapper* self, char32_t ch);
52
53 char32_t icu4x_CaseMapper_simple_uppercase_with_compiled_data_mv1(char32_t ch);
54
55 char32_t icu4x_CaseMapper_simple_titlecase_mv1(const icu4x::capi::CaseMapper* self, char32_t ch);
56
57 char32_t icu4x_CaseMapper_simple_titlecase_with_compiled_data_mv1(char32_t ch);
58
59 char32_t icu4x_CaseMapper_simple_fold_mv1(const icu4x::capi::CaseMapper* self, char32_t ch);
60
61 char32_t icu4x_CaseMapper_simple_fold_with_compiled_data_mv1(char32_t ch);
62
63 char32_t icu4x_CaseMapper_simple_fold_turkic_mv1(const icu4x::capi::CaseMapper* self, char32_t ch);
64
65 char32_t icu4x_CaseMapper_simple_fold_turkic_with_compiled_data_mv1(char32_t ch);
66
67 void icu4x_CaseMapper_destroy_mv1(CaseMapper* self);
68
69 } // extern "C"
70} // namespace capi
71} // namespace
72
73inline std::unique_ptr<icu4x::CaseMapper> icu4x::CaseMapper::create() {
74 auto result = icu4x::capi::icu4x_CaseMapper_create_mv1();
75 return std::unique_ptr<icu4x::CaseMapper>(icu4x::CaseMapper::FromFFI(result));
76}
77
79 auto result = icu4x::capi::icu4x_CaseMapper_create_with_provider_mv1(provider.AsFFI());
81}
82
84 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
86 }
87 std::string output;
88 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
89 icu4x::capi::icu4x_CaseMapper_lowercase_mv1(this->AsFFI(),
90 {s.data(), s.size()},
91 locale.AsFFI(),
92 &write);
93 return icu4x::diplomat::Ok<std::string>(std::move(output));
94}
95template<typename W>
97 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
99 }
100 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
101 icu4x::capi::icu4x_CaseMapper_lowercase_mv1(this->AsFFI(),
102 {s.data(), s.size()},
103 locale.AsFFI(),
104 &write);
106}
107
109 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
111 }
112 std::string output;
113 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
114 icu4x::capi::icu4x_CaseMapper_uppercase_mv1(this->AsFFI(),
115 {s.data(), s.size()},
116 locale.AsFFI(),
117 &write);
118 return icu4x::diplomat::Ok<std::string>(std::move(output));
119}
120template<typename W>
122 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
124 }
125 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
126 icu4x::capi::icu4x_CaseMapper_uppercase_mv1(this->AsFFI(),
127 {s.data(), s.size()},
128 locale.AsFFI(),
129 &write);
131}
132
134 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
136 }
137 std::string output;
138 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
139 icu4x::capi::icu4x_CaseMapper_lowercase_with_compiled_data_mv1({s.data(), s.size()},
140 locale.AsFFI(),
141 &write);
142 return icu4x::diplomat::Ok<std::string>(std::move(output));
143}
144template<typename W>
146 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
148 }
149 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
150 icu4x::capi::icu4x_CaseMapper_lowercase_with_compiled_data_mv1({s.data(), s.size()},
151 locale.AsFFI(),
152 &write);
154}
155
157 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
159 }
160 std::string output;
161 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
162 icu4x::capi::icu4x_CaseMapper_uppercase_with_compiled_data_mv1({s.data(), s.size()},
163 locale.AsFFI(),
164 &write);
165 return icu4x::diplomat::Ok<std::string>(std::move(output));
166}
167template<typename W>
169 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
171 }
172 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
173 icu4x::capi::icu4x_CaseMapper_uppercase_with_compiled_data_mv1({s.data(), s.size()},
174 locale.AsFFI(),
175 &write);
177}
178
180 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
182 }
183 std::string output;
184 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
185 icu4x::capi::icu4x_CaseMapper_titlecase_segment_with_only_case_data_v1_mv1(this->AsFFI(),
186 {s.data(), s.size()},
187 locale.AsFFI(),
188 options.AsFFI(),
189 &write);
190 return icu4x::diplomat::Ok<std::string>(std::move(output));
191}
192template<typename W>
194 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
196 }
197 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
198 icu4x::capi::icu4x_CaseMapper_titlecase_segment_with_only_case_data_v1_mv1(this->AsFFI(),
199 {s.data(), s.size()},
200 locale.AsFFI(),
201 options.AsFFI(),
202 &write);
204}
205
207 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
209 }
210 std::string output;
211 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
212 icu4x::capi::icu4x_CaseMapper_fold_mv1(this->AsFFI(),
213 {s.data(), s.size()},
214 &write);
215 return icu4x::diplomat::Ok<std::string>(std::move(output));
216}
217template<typename W>
219 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
221 }
222 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
223 icu4x::capi::icu4x_CaseMapper_fold_mv1(this->AsFFI(),
224 {s.data(), s.size()},
225 &write);
227}
228
230 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
232 }
233 std::string output;
234 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
235 icu4x::capi::icu4x_CaseMapper_fold_turkic_mv1(this->AsFFI(),
236 {s.data(), s.size()},
237 &write);
238 return icu4x::diplomat::Ok<std::string>(std::move(output));
239}
240template<typename W>
242 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
244 }
245 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
246 icu4x::capi::icu4x_CaseMapper_fold_turkic_mv1(this->AsFFI(),
247 {s.data(), s.size()},
248 &write);
250}
251
253 icu4x::capi::icu4x_CaseMapper_add_case_closure_to_mv1(this->AsFFI(),
254 c,
255 builder.AsFFI());
256}
257
258inline char32_t icu4x::CaseMapper::simple_lowercase(char32_t ch) const {
259 auto result = icu4x::capi::icu4x_CaseMapper_simple_lowercase_mv1(this->AsFFI(),
260 ch);
261 return result;
262}
263
265 auto result = icu4x::capi::icu4x_CaseMapper_simple_lowercase_with_compiled_data_mv1(ch);
266 return result;
267}
268
269inline char32_t icu4x::CaseMapper::simple_uppercase(char32_t ch) const {
270 auto result = icu4x::capi::icu4x_CaseMapper_simple_uppercase_mv1(this->AsFFI(),
271 ch);
272 return result;
273}
274
276 auto result = icu4x::capi::icu4x_CaseMapper_simple_uppercase_with_compiled_data_mv1(ch);
277 return result;
278}
279
280inline char32_t icu4x::CaseMapper::simple_titlecase(char32_t ch) const {
281 auto result = icu4x::capi::icu4x_CaseMapper_simple_titlecase_mv1(this->AsFFI(),
282 ch);
283 return result;
284}
285
287 auto result = icu4x::capi::icu4x_CaseMapper_simple_titlecase_with_compiled_data_mv1(ch);
288 return result;
289}
290
291inline char32_t icu4x::CaseMapper::simple_fold(char32_t ch) const {
292 auto result = icu4x::capi::icu4x_CaseMapper_simple_fold_mv1(this->AsFFI(),
293 ch);
294 return result;
295}
296
298 auto result = icu4x::capi::icu4x_CaseMapper_simple_fold_with_compiled_data_mv1(ch);
299 return result;
300}
301
302inline char32_t icu4x::CaseMapper::simple_fold_turkic(char32_t ch) const {
303 auto result = icu4x::capi::icu4x_CaseMapper_simple_fold_turkic_mv1(this->AsFFI(),
304 ch);
305 return result;
306}
307
309 auto result = icu4x::capi::icu4x_CaseMapper_simple_fold_turkic_with_compiled_data_mv1(ch);
310 return result;
311}
312
313inline const icu4x::capi::CaseMapper* icu4x::CaseMapper::AsFFI() const {
314 return reinterpret_cast<const icu4x::capi::CaseMapper*>(this);
315}
316
317inline icu4x::capi::CaseMapper* icu4x::CaseMapper::AsFFI() {
318 return reinterpret_cast<icu4x::capi::CaseMapper*>(this);
319}
320
321inline const icu4x::CaseMapper* icu4x::CaseMapper::FromFFI(const icu4x::capi::CaseMapper* ptr) {
322 return reinterpret_cast<const icu4x::CaseMapper*>(ptr);
323}
324
325inline icu4x::CaseMapper* icu4x::CaseMapper::FromFFI(icu4x::capi::CaseMapper* ptr) {
326 return reinterpret_cast<icu4x::CaseMapper*>(ptr);
327}
328
329inline void icu4x::CaseMapper::operator delete(void* ptr) {
330 icu4x::capi::icu4x_CaseMapper_destroy_mv1(reinterpret_cast<icu4x::capi::CaseMapper*>(ptr));
331}
332
333
334#endif // ICU4X_CaseMapper_HPP
static std::unique_ptr< icu4x::CaseMapper > create()
Definition CaseMapper.hpp:73
icu4x::diplomat::result< std::string, icu4x::diplomat::Utf8Error > fold(std::string_view s) const
Definition CaseMapper.hpp:206
static icu4x::diplomat::result< std::monostate, icu4x::diplomat::Utf8Error > uppercase_with_compiled_data_write(std::string_view s, const icu4x::Locale &locale, W &writeable_output)
Definition CaseMapper.hpp:168
icu4x::diplomat::result< std::string, icu4x::diplomat::Utf8Error > titlecase_segment_with_only_case_data_v1(std::string_view s, const icu4x::Locale &locale, icu4x::TitlecaseOptionsV1 options) const
Definition CaseMapper.hpp:179
icu4x::diplomat::result< std::string, icu4x::diplomat::Utf8Error > uppercase(std::string_view s, const icu4x::Locale &locale) const
Definition CaseMapper.hpp:108
char32_t simple_fold(char32_t ch) const
Definition CaseMapper.hpp:291
icu4x::diplomat::result< std::monostate, icu4x::diplomat::Utf8Error > fold_write(std::string_view s, W &writeable_output) const
Definition CaseMapper.hpp:218
static icu4x::diplomat::result< std::unique_ptr< icu4x::CaseMapper >, icu4x::DataError > create_with_provider(const icu4x::DataProvider &provider)
Definition CaseMapper.hpp:78
icu4x::diplomat::result< std::monostate, icu4x::diplomat::Utf8Error > lowercase_write(std::string_view s, const icu4x::Locale &locale, W &writeable_output) const
Definition CaseMapper.hpp:96
char32_t simple_titlecase(char32_t ch) const
Definition CaseMapper.hpp:280
void add_case_closure_to(char32_t c, icu4x::CodePointSetBuilder &builder) const
Definition CaseMapper.hpp:252
icu4x::diplomat::result< std::monostate, icu4x::diplomat::Utf8Error > titlecase_segment_with_only_case_data_v1_write(std::string_view s, const icu4x::Locale &locale, icu4x::TitlecaseOptionsV1 options, W &writeable_output) const
Definition CaseMapper.hpp:193
static icu4x::diplomat::result< std::string, icu4x::diplomat::Utf8Error > lowercase_with_compiled_data(std::string_view s, const icu4x::Locale &locale)
Definition CaseMapper.hpp:133
static char32_t simple_uppercase_with_compiled_data(char32_t ch)
Definition CaseMapper.hpp:275
icu4x::diplomat::result< std::string, icu4x::diplomat::Utf8Error > lowercase(std::string_view s, const icu4x::Locale &locale) const
Definition CaseMapper.hpp:83
icu4x::diplomat::result< std::monostate, icu4x::diplomat::Utf8Error > fold_turkic_write(std::string_view s, W &writeable_output) const
Definition CaseMapper.hpp:241
static char32_t simple_fold_turkic_with_compiled_data(char32_t ch)
Definition CaseMapper.hpp:308
char32_t simple_fold_turkic(char32_t ch) const
Definition CaseMapper.hpp:302
static icu4x::diplomat::result< std::string, icu4x::diplomat::Utf8Error > uppercase_with_compiled_data(std::string_view s, const icu4x::Locale &locale)
Definition CaseMapper.hpp:156
static char32_t simple_fold_with_compiled_data(char32_t ch)
Definition CaseMapper.hpp:297
icu4x::diplomat::result< std::string, icu4x::diplomat::Utf8Error > fold_turkic(std::string_view s) const
Definition CaseMapper.hpp:229
icu4x::diplomat::result< std::monostate, icu4x::diplomat::Utf8Error > uppercase_write(std::string_view s, const icu4x::Locale &locale, W &writeable_output) const
Definition CaseMapper.hpp:121
static char32_t simple_titlecase_with_compiled_data(char32_t ch)
Definition CaseMapper.hpp:286
static char32_t simple_lowercase_with_compiled_data(char32_t ch)
Definition CaseMapper.hpp:264
char32_t simple_lowercase(char32_t ch) const
Definition CaseMapper.hpp:258
static icu4x::diplomat::result< std::monostate, icu4x::diplomat::Utf8Error > lowercase_with_compiled_data_write(std::string_view s, const icu4x::Locale &locale, W &writeable_output)
Definition CaseMapper.hpp:145
char32_t simple_uppercase(char32_t ch) const
Definition CaseMapper.hpp:269
Definition CodePointSetBuilder.d.hpp:32
Definition DataError.d.hpp:37
Definition DataProvider.d.hpp:40
Definition Locale.d.hpp:33
Definition diplomat_runtime.hpp:166
Definition Bidi.d.hpp:13
Definition TitlecaseOptionsV1.d.hpp:39
Definition diplomat_runtime.hpp:146
Definition diplomat_runtime.hpp:128
Definition diplomat_runtime.hpp:117