1#ifndef ICU4XCaseMapper_HPP
2#define ICU4XCaseMapper_HPP
12#include "ICU4XCaseMapper.h"
24struct ICU4XCaseMapperDeleter {
25 void operator()(capi::ICU4XCaseMapper* l)
const noexcept {
26 capi::ICU4XCaseMapper_destroy(l);
192 inline const capi::ICU4XCaseMapper* AsFFI()
const {
return this->inner.get(); }
193 inline capi::ICU4XCaseMapper* AsFFIMut() {
return this->inner.get(); }
202#include "ICU4XDataProvider.hpp"
208 auto diplomat_result_raw_out_value = capi::ICU4XCaseMapper_create(provider.AsFFI());
210 if (diplomat_result_raw_out_value.is_ok) {
215 return diplomat_result_out_value;
218 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
219 auto diplomat_result_raw_out_value = capi::ICU4XCaseMapper_lowercase(this->inner.get(), s.data(), s.size(), locale.AsFFI(), &write_writer);
221 if (diplomat_result_raw_out_value.is_ok) {
226 return diplomat_result_out_value;
229 std::string diplomat_writeable_string;
231 auto diplomat_result_raw_out_value = capi::ICU4XCaseMapper_lowercase(this->inner.get(), s.data(), s.size(), locale.AsFFI(), &diplomat_writeable_out);
233 if (diplomat_result_raw_out_value.is_ok) {
238 return diplomat_result_out_value.
replace_ok(std::move(diplomat_writeable_string));
241 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
242 auto diplomat_result_raw_out_value = capi::ICU4XCaseMapper_uppercase(this->inner.get(), s.data(), s.size(), locale.AsFFI(), &write_writer);
244 if (diplomat_result_raw_out_value.is_ok) {
249 return diplomat_result_out_value;
252 std::string diplomat_writeable_string;
254 auto diplomat_result_raw_out_value = capi::ICU4XCaseMapper_uppercase(this->inner.get(), s.data(), s.size(), locale.AsFFI(), &diplomat_writeable_out);
256 if (diplomat_result_raw_out_value.is_ok) {
261 return diplomat_result_out_value.
replace_ok(std::move(diplomat_writeable_string));
265 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
266 auto diplomat_result_raw_out_value = capi::ICU4XCaseMapper_titlecase_segment_with_only_case_data_v1(this->inner.get(), s.data(), s.size(), locale.AsFFI(), capi::ICU4XTitlecaseOptionsV1{ .leading_adjustment = static_cast<capi::ICU4XLeadingAdjustment>(diplomat_wrapped_struct_options.leading_adjustment), .trailing_case = static_cast<capi::ICU4XTrailingCase>(diplomat_wrapped_struct_options.trailing_case) }, &write_writer);
268 if (diplomat_result_raw_out_value.is_ok) {
273 return diplomat_result_out_value;
277 std::string diplomat_writeable_string;
279 auto diplomat_result_raw_out_value = capi::ICU4XCaseMapper_titlecase_segment_with_only_case_data_v1(this->inner.get(), s.data(), s.size(), locale.AsFFI(), capi::ICU4XTitlecaseOptionsV1{ .leading_adjustment = static_cast<capi::ICU4XLeadingAdjustment>(diplomat_wrapped_struct_options.leading_adjustment), .trailing_case = static_cast<capi::ICU4XTrailingCase>(diplomat_wrapped_struct_options.trailing_case) }, &diplomat_writeable_out);
281 if (diplomat_result_raw_out_value.is_ok) {
286 return diplomat_result_out_value.
replace_ok(std::move(diplomat_writeable_string));
289 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
290 auto diplomat_result_raw_out_value = capi::ICU4XCaseMapper_fold(this->inner.get(), s.data(), s.size(), &write_writer);
292 if (diplomat_result_raw_out_value.is_ok) {
297 return diplomat_result_out_value;
300 std::string diplomat_writeable_string;
302 auto diplomat_result_raw_out_value = capi::ICU4XCaseMapper_fold(this->inner.get(), s.data(), s.size(), &diplomat_writeable_out);
304 if (diplomat_result_raw_out_value.is_ok) {
309 return diplomat_result_out_value.
replace_ok(std::move(diplomat_writeable_string));
312 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
313 auto diplomat_result_raw_out_value = capi::ICU4XCaseMapper_fold_turkic(this->inner.get(), s.data(), s.size(), &write_writer);
315 if (diplomat_result_raw_out_value.is_ok) {
320 return diplomat_result_out_value;
323 std::string diplomat_writeable_string;
325 auto diplomat_result_raw_out_value = capi::ICU4XCaseMapper_fold_turkic(this->inner.get(), s.data(), s.size(), &diplomat_writeable_out);
327 if (diplomat_result_raw_out_value.is_ok) {
332 return diplomat_result_out_value.
replace_ok(std::move(diplomat_writeable_string));
335 capi::ICU4XCaseMapper_add_case_closure_to(this->inner.get(), c, builder.AsFFIMut());
338 return capi::ICU4XCaseMapper_simple_lowercase(this->inner.get(), ch);
341 return capi::ICU4XCaseMapper_simple_uppercase(this->inner.get(), ch);
344 return capi::ICU4XCaseMapper_simple_titlecase(this->inner.get(), ch);
347 return capi::ICU4XCaseMapper_simple_fold(this->inner.get(), ch);
350 return capi::ICU4XCaseMapper_simple_fold_turkic(this->inner.get(), ch);
ICU4XError
Definition ICU4XError.hpp:23
Definition ICU4XCaseMapper.hpp:33
ICU4XCaseMapper(capi::ICU4XCaseMapper *i)
Definition ICU4XCaseMapper.hpp:194
diplomat::result< std::string, ICU4XError > fold(const std::string_view s) const
Definition ICU4XCaseMapper.hpp:299
ICU4XCaseMapper(ICU4XCaseMapper &&) noexcept=default
diplomat::result< std::monostate, ICU4XError > fold_to_writeable(const std::string_view s, W &write) const
Definition ICU4XCaseMapper.hpp:288
char32_t simple_fold(char32_t ch) const
Definition ICU4XCaseMapper.hpp:346
char32_t simple_lowercase(char32_t ch) const
Definition ICU4XCaseMapper.hpp:337
diplomat::result< std::monostate, ICU4XError > uppercase_to_writeable(const std::string_view s, const ICU4XLocale &locale, W &write) const
Definition ICU4XCaseMapper.hpp:240
diplomat::result< std::monostate, ICU4XError > titlecase_segment_with_only_case_data_v1_to_writeable(const std::string_view s, const ICU4XLocale &locale, ICU4XTitlecaseOptionsV1 options, W &write) const
Definition ICU4XCaseMapper.hpp:263
char32_t simple_fold_turkic(char32_t ch) const
Definition ICU4XCaseMapper.hpp:349
diplomat::result< std::string, ICU4XError > lowercase(const std::string_view s, const ICU4XLocale &locale) const
Definition ICU4XCaseMapper.hpp:228
diplomat::result< std::monostate, ICU4XError > lowercase_to_writeable(const std::string_view s, const ICU4XLocale &locale, W &write) const
Definition ICU4XCaseMapper.hpp:217
diplomat::result< std::string, ICU4XError > uppercase(const std::string_view s, const ICU4XLocale &locale) const
Definition ICU4XCaseMapper.hpp:251
char32_t simple_titlecase(char32_t ch) const
Definition ICU4XCaseMapper.hpp:343
void add_case_closure_to(char32_t c, ICU4XCodePointSetBuilder &builder) const
Definition ICU4XCaseMapper.hpp:334
diplomat::result< std::monostate, ICU4XError > fold_turkic_to_writeable(const std::string_view s, W &write) const
Definition ICU4XCaseMapper.hpp:311
static diplomat::result< ICU4XCaseMapper, ICU4XError > create(const ICU4XDataProvider &provider)
Definition ICU4XCaseMapper.hpp:207
ICU4XCaseMapper()=default
diplomat::result< std::string, ICU4XError > fold_turkic(const std::string_view s) const
Definition ICU4XCaseMapper.hpp:322
char32_t simple_uppercase(char32_t ch) const
Definition ICU4XCaseMapper.hpp:340
diplomat::result< std::string, ICU4XError > titlecase_segment_with_only_case_data_v1(const std::string_view s, const ICU4XLocale &locale, ICU4XTitlecaseOptionsV1 options) const
Definition ICU4XCaseMapper.hpp:275
Definition ICU4XCodePointSetBuilder.hpp:29
Definition ICU4XDataProvider.hpp:32
Definition ICU4XLocale.hpp:32
Definition diplomat_runtime.hpp:84
result< T2, E > replace_ok(T2 &&t)
Definition diplomat_runtime.hpp:125
capi::DiplomatWriteable WriteableFromString(std::string &string)
Definition diplomat_runtime.hpp:31
Definition ICU4XTitlecaseOptionsV1.hpp:22
Definition diplomat_runtime.hpp:69
Definition diplomat_runtime.hpp:55