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_titlecase_segment_with_only_case_compiled_data_v1_mv1(icu4x::diplomat::capi::DiplomatStringView s, const icu4x::capi::Locale* locale, icu4x::capi::TitlecaseOptionsV1 options, icu4x::diplomat::capi::DiplomatWrite* write);
42
43 void icu4x_CaseMapper_fold_mv1(const icu4x::capi::CaseMapper* self, icu4x::diplomat::capi::DiplomatStringView s, icu4x::diplomat::capi::DiplomatWrite* write);
44
45 void icu4x_CaseMapper_fold_turkic_mv1(const icu4x::capi::CaseMapper* self, icu4x::diplomat::capi::DiplomatStringView s, icu4x::diplomat::capi::DiplomatWrite* write);
46
47 void icu4x_CaseMapper_add_case_closure_to_mv1(const icu4x::capi::CaseMapper* self, char32_t c, icu4x::capi::CodePointSetBuilder* builder);
48
49 char32_t icu4x_CaseMapper_simple_lowercase_mv1(const icu4x::capi::CaseMapper* self, char32_t ch);
50
51 char32_t icu4x_CaseMapper_simple_lowercase_with_compiled_data_mv1(char32_t ch);
52
53 char32_t icu4x_CaseMapper_simple_uppercase_mv1(const icu4x::capi::CaseMapper* self, char32_t ch);
54
55 char32_t icu4x_CaseMapper_simple_uppercase_with_compiled_data_mv1(char32_t ch);
56
57 char32_t icu4x_CaseMapper_simple_titlecase_mv1(const icu4x::capi::CaseMapper* self, char32_t ch);
58
59 char32_t icu4x_CaseMapper_simple_titlecase_with_compiled_data_mv1(char32_t ch);
60
61 char32_t icu4x_CaseMapper_simple_fold_mv1(const icu4x::capi::CaseMapper* self, char32_t ch);
62
63 char32_t icu4x_CaseMapper_simple_fold_with_compiled_data_mv1(char32_t ch);
64
65 char32_t icu4x_CaseMapper_simple_fold_turkic_mv1(const icu4x::capi::CaseMapper* self, char32_t ch);
66
67 char32_t icu4x_CaseMapper_simple_fold_turkic_with_compiled_data_mv1(char32_t ch);
68
69 void icu4x_CaseMapper_destroy_mv1(CaseMapper* self);
70
71 } // extern "C"
72} // namespace capi
73} // namespace
74
75inline std::unique_ptr<icu4x::CaseMapper> icu4x::CaseMapper::create() {
76 auto result = icu4x::capi::icu4x_CaseMapper_create_mv1();
77 return std::unique_ptr<icu4x::CaseMapper>(icu4x::CaseMapper::FromFFI(result));
78}
79
81 auto result = icu4x::capi::icu4x_CaseMapper_create_with_provider_mv1(provider.AsFFI());
83}
84
86 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
88 }
89 std::string output;
90 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
91 icu4x::capi::icu4x_CaseMapper_lowercase_mv1(this->AsFFI(),
92 {s.data(), s.size()},
93 locale.AsFFI(),
94 &write);
95 return icu4x::diplomat::Ok<std::string>(std::move(output));
96}
97template<typename W>
99 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
101 }
102 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
103 icu4x::capi::icu4x_CaseMapper_lowercase_mv1(this->AsFFI(),
104 {s.data(), s.size()},
105 locale.AsFFI(),
106 &write);
108}
109
111 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
113 }
114 std::string output;
115 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
116 icu4x::capi::icu4x_CaseMapper_uppercase_mv1(this->AsFFI(),
117 {s.data(), s.size()},
118 locale.AsFFI(),
119 &write);
120 return icu4x::diplomat::Ok<std::string>(std::move(output));
121}
122template<typename W>
124 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
126 }
127 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
128 icu4x::capi::icu4x_CaseMapper_uppercase_mv1(this->AsFFI(),
129 {s.data(), s.size()},
130 locale.AsFFI(),
131 &write);
133}
134
136 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
138 }
139 std::string output;
140 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
141 icu4x::capi::icu4x_CaseMapper_lowercase_with_compiled_data_mv1({s.data(), s.size()},
142 locale.AsFFI(),
143 &write);
144 return icu4x::diplomat::Ok<std::string>(std::move(output));
145}
146template<typename W>
148 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
150 }
151 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
152 icu4x::capi::icu4x_CaseMapper_lowercase_with_compiled_data_mv1({s.data(), s.size()},
153 locale.AsFFI(),
154 &write);
156}
157
159 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
161 }
162 std::string output;
163 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
164 icu4x::capi::icu4x_CaseMapper_uppercase_with_compiled_data_mv1({s.data(), s.size()},
165 locale.AsFFI(),
166 &write);
167 return icu4x::diplomat::Ok<std::string>(std::move(output));
168}
169template<typename W>
171 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
173 }
174 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
175 icu4x::capi::icu4x_CaseMapper_uppercase_with_compiled_data_mv1({s.data(), s.size()},
176 locale.AsFFI(),
177 &write);
179}
180
182 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
184 }
185 std::string output;
186 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
187 icu4x::capi::icu4x_CaseMapper_titlecase_segment_with_only_case_data_v1_mv1(this->AsFFI(),
188 {s.data(), s.size()},
189 locale.AsFFI(),
190 options.AsFFI(),
191 &write);
192 return icu4x::diplomat::Ok<std::string>(std::move(output));
193}
194template<typename W>
196 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
198 }
199 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
200 icu4x::capi::icu4x_CaseMapper_titlecase_segment_with_only_case_data_v1_mv1(this->AsFFI(),
201 {s.data(), s.size()},
202 locale.AsFFI(),
203 options.AsFFI(),
204 &write);
206}
207
209 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
211 }
212 std::string output;
213 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
214 icu4x::capi::icu4x_CaseMapper_titlecase_segment_with_only_case_compiled_data_v1_mv1({s.data(), s.size()},
215 locale.AsFFI(),
216 options.AsFFI(),
217 &write);
218 return icu4x::diplomat::Ok<std::string>(std::move(output));
219}
220template<typename W>
222 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
224 }
225 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
226 icu4x::capi::icu4x_CaseMapper_titlecase_segment_with_only_case_compiled_data_v1_mv1({s.data(), s.size()},
227 locale.AsFFI(),
228 options.AsFFI(),
229 &write);
231}
232
234 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
236 }
237 std::string output;
238 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
239 icu4x::capi::icu4x_CaseMapper_fold_mv1(this->AsFFI(),
240 {s.data(), s.size()},
241 &write);
242 return icu4x::diplomat::Ok<std::string>(std::move(output));
243}
244template<typename W>
246 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
248 }
249 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
250 icu4x::capi::icu4x_CaseMapper_fold_mv1(this->AsFFI(),
251 {s.data(), s.size()},
252 &write);
254}
255
257 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
259 }
260 std::string output;
261 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
262 icu4x::capi::icu4x_CaseMapper_fold_turkic_mv1(this->AsFFI(),
263 {s.data(), s.size()},
264 &write);
265 return icu4x::diplomat::Ok<std::string>(std::move(output));
266}
267template<typename W>
269 if (!icu4x::diplomat::capi::diplomat_is_str(s.data(), s.size())) {
271 }
272 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
273 icu4x::capi::icu4x_CaseMapper_fold_turkic_mv1(this->AsFFI(),
274 {s.data(), s.size()},
275 &write);
277}
278
280 icu4x::capi::icu4x_CaseMapper_add_case_closure_to_mv1(this->AsFFI(),
281 c,
282 builder.AsFFI());
283}
284
285inline char32_t icu4x::CaseMapper::simple_lowercase(char32_t ch) const {
286 auto result = icu4x::capi::icu4x_CaseMapper_simple_lowercase_mv1(this->AsFFI(),
287 ch);
288 return result;
289}
290
292 auto result = icu4x::capi::icu4x_CaseMapper_simple_lowercase_with_compiled_data_mv1(ch);
293 return result;
294}
295
296inline char32_t icu4x::CaseMapper::simple_uppercase(char32_t ch) const {
297 auto result = icu4x::capi::icu4x_CaseMapper_simple_uppercase_mv1(this->AsFFI(),
298 ch);
299 return result;
300}
301
303 auto result = icu4x::capi::icu4x_CaseMapper_simple_uppercase_with_compiled_data_mv1(ch);
304 return result;
305}
306
307inline char32_t icu4x::CaseMapper::simple_titlecase(char32_t ch) const {
308 auto result = icu4x::capi::icu4x_CaseMapper_simple_titlecase_mv1(this->AsFFI(),
309 ch);
310 return result;
311}
312
314 auto result = icu4x::capi::icu4x_CaseMapper_simple_titlecase_with_compiled_data_mv1(ch);
315 return result;
316}
317
318inline char32_t icu4x::CaseMapper::simple_fold(char32_t ch) const {
319 auto result = icu4x::capi::icu4x_CaseMapper_simple_fold_mv1(this->AsFFI(),
320 ch);
321 return result;
322}
323
325 auto result = icu4x::capi::icu4x_CaseMapper_simple_fold_with_compiled_data_mv1(ch);
326 return result;
327}
328
329inline char32_t icu4x::CaseMapper::simple_fold_turkic(char32_t ch) const {
330 auto result = icu4x::capi::icu4x_CaseMapper_simple_fold_turkic_mv1(this->AsFFI(),
331 ch);
332 return result;
333}
334
336 auto result = icu4x::capi::icu4x_CaseMapper_simple_fold_turkic_with_compiled_data_mv1(ch);
337 return result;
338}
339
340inline const icu4x::capi::CaseMapper* icu4x::CaseMapper::AsFFI() const {
341 return reinterpret_cast<const icu4x::capi::CaseMapper*>(this);
342}
343
344inline icu4x::capi::CaseMapper* icu4x::CaseMapper::AsFFI() {
345 return reinterpret_cast<icu4x::capi::CaseMapper*>(this);
346}
347
348inline const icu4x::CaseMapper* icu4x::CaseMapper::FromFFI(const icu4x::capi::CaseMapper* ptr) {
349 return reinterpret_cast<const icu4x::CaseMapper*>(ptr);
350}
351
352inline icu4x::CaseMapper* icu4x::CaseMapper::FromFFI(icu4x::capi::CaseMapper* ptr) {
353 return reinterpret_cast<icu4x::CaseMapper*>(ptr);
354}
355
356inline void icu4x::CaseMapper::operator delete(void* ptr) {
357 icu4x::capi::icu4x_CaseMapper_destroy_mv1(reinterpret_cast<icu4x::capi::CaseMapper*>(ptr));
358}
359
360
361#endif // ICU4X_CaseMapper_HPP
static std::unique_ptr< icu4x::CaseMapper > create()
Definition CaseMapper.hpp:75
icu4x::diplomat::result< std::string, icu4x::diplomat::Utf8Error > fold(std::string_view s) const
Definition CaseMapper.hpp:233
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:170
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:181
icu4x::diplomat::result< std::string, icu4x::diplomat::Utf8Error > uppercase(std::string_view s, const icu4x::Locale &locale) const
Definition CaseMapper.hpp:110
char32_t simple_fold(char32_t ch) const
Definition CaseMapper.hpp:318
icu4x::diplomat::result< std::monostate, icu4x::diplomat::Utf8Error > fold_write(std::string_view s, W &writeable_output) const
Definition CaseMapper.hpp:245
static icu4x::diplomat::result< std::string, icu4x::diplomat::Utf8Error > titlecase_segment_with_only_case_compiled_data_v1(std::string_view s, const icu4x::Locale &locale, icu4x::TitlecaseOptionsV1 options)
Definition CaseMapper.hpp:208
static icu4x::diplomat::result< std::unique_ptr< icu4x::CaseMapper >, icu4x::DataError > create_with_provider(const icu4x::DataProvider &provider)
Definition CaseMapper.hpp:80
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:98
char32_t simple_titlecase(char32_t ch) const
Definition CaseMapper.hpp:307
void add_case_closure_to(char32_t c, icu4x::CodePointSetBuilder &builder) const
Definition CaseMapper.hpp:279
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:195
static icu4x::diplomat::result< std::string, icu4x::diplomat::Utf8Error > lowercase_with_compiled_data(std::string_view s, const icu4x::Locale &locale)
Definition CaseMapper.hpp:135
static char32_t simple_uppercase_with_compiled_data(char32_t ch)
Definition CaseMapper.hpp:302
icu4x::diplomat::result< std::string, icu4x::diplomat::Utf8Error > lowercase(std::string_view s, const icu4x::Locale &locale) const
Definition CaseMapper.hpp:85
icu4x::diplomat::result< std::monostate, icu4x::diplomat::Utf8Error > fold_turkic_write(std::string_view s, W &writeable_output) const
Definition CaseMapper.hpp:268
static char32_t simple_fold_turkic_with_compiled_data(char32_t ch)
Definition CaseMapper.hpp:335
char32_t simple_fold_turkic(char32_t ch) const
Definition CaseMapper.hpp:329
static icu4x::diplomat::result< std::string, icu4x::diplomat::Utf8Error > uppercase_with_compiled_data(std::string_view s, const icu4x::Locale &locale)
Definition CaseMapper.hpp:158
static char32_t simple_fold_with_compiled_data(char32_t ch)
Definition CaseMapper.hpp:324
icu4x::diplomat::result< std::string, icu4x::diplomat::Utf8Error > fold_turkic(std::string_view s) const
Definition CaseMapper.hpp:256
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:123
static char32_t simple_titlecase_with_compiled_data(char32_t ch)
Definition CaseMapper.hpp:313
static char32_t simple_lowercase_with_compiled_data(char32_t ch)
Definition CaseMapper.hpp:291
char32_t simple_lowercase(char32_t ch) const
Definition CaseMapper.hpp:285
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:147
static icu4x::diplomat::result< std::monostate, icu4x::diplomat::Utf8Error > titlecase_segment_with_only_case_compiled_data_v1_write(std::string_view s, const icu4x::Locale &locale, icu4x::TitlecaseOptionsV1 options, W &writeable_output)
Definition CaseMapper.hpp:221
char32_t simple_uppercase(char32_t ch) const
Definition CaseMapper.hpp:296
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