1#ifndef ICU4X_Locale_HPP
2#define ICU4X_Locale_HPP
22 typedef struct icu4x_Locale_from_string_mv1_result {
union {icu4x::capi::Locale* ok; icu4x::capi::LocaleParseError err;};
bool is_ok;} icu4x_Locale_from_string_mv1_result;
23 icu4x_Locale_from_string_mv1_result icu4x_Locale_from_string_mv1(icu4x::diplomat::capi::DiplomatStringView name);
25 icu4x::capi::Locale* icu4x_Locale_unknown_mv1(
void);
27 const icu4x::capi::Locale* icu4x_Locale_unknown_ref_mv1(
void);
29 icu4x::capi::Locale* icu4x_Locale_clone_mv1(
const icu4x::capi::Locale* self);
31 void icu4x_Locale_basename_mv1(
const icu4x::capi::Locale* self, icu4x::diplomat::capi::DiplomatWrite* write);
33 typedef struct icu4x_Locale_get_unicode_extension_mv1_result {
bool is_ok;} icu4x_Locale_get_unicode_extension_mv1_result;
34 icu4x_Locale_get_unicode_extension_mv1_result icu4x_Locale_get_unicode_extension_mv1(
const icu4x::capi::Locale* self, icu4x::diplomat::capi::DiplomatStringView s, icu4x::diplomat::capi::DiplomatWrite* write);
36 typedef struct icu4x_Locale_set_unicode_extension_mv1_result {
bool is_ok;} icu4x_Locale_set_unicode_extension_mv1_result;
37 icu4x_Locale_set_unicode_extension_mv1_result icu4x_Locale_set_unicode_extension_mv1(icu4x::capi::Locale* self, icu4x::diplomat::capi::DiplomatStringView k, icu4x::diplomat::capi::DiplomatStringView v);
39 void icu4x_Locale_language_mv1(
const icu4x::capi::Locale* self, icu4x::diplomat::capi::DiplomatWrite* write);
41 typedef struct icu4x_Locale_set_language_mv1_result {
union { icu4x::capi::LocaleParseError err;};
bool is_ok;} icu4x_Locale_set_language_mv1_result;
42 icu4x_Locale_set_language_mv1_result icu4x_Locale_set_language_mv1(icu4x::capi::Locale* self, icu4x::diplomat::capi::DiplomatStringView s);
44 typedef struct icu4x_Locale_region_mv1_result {
bool is_ok;} icu4x_Locale_region_mv1_result;
45 icu4x_Locale_region_mv1_result icu4x_Locale_region_mv1(
const icu4x::capi::Locale* self, icu4x::diplomat::capi::DiplomatWrite* write);
47 typedef struct icu4x_Locale_set_region_mv1_result {
union { icu4x::capi::LocaleParseError err;};
bool is_ok;} icu4x_Locale_set_region_mv1_result;
48 icu4x_Locale_set_region_mv1_result icu4x_Locale_set_region_mv1(icu4x::capi::Locale* self, icu4x::diplomat::capi::DiplomatStringView s);
50 typedef struct icu4x_Locale_script_mv1_result {
bool is_ok;} icu4x_Locale_script_mv1_result;
51 icu4x_Locale_script_mv1_result icu4x_Locale_script_mv1(
const icu4x::capi::Locale* self, icu4x::diplomat::capi::DiplomatWrite* write);
53 typedef struct icu4x_Locale_set_script_mv1_result {
union { icu4x::capi::LocaleParseError err;};
bool is_ok;} icu4x_Locale_set_script_mv1_result;
54 icu4x_Locale_set_script_mv1_result icu4x_Locale_set_script_mv1(icu4x::capi::Locale* self, icu4x::diplomat::capi::DiplomatStringView s);
56 void icu4x_Locale_variants_mv1(
const icu4x::capi::Locale* self, icu4x::diplomat::capi::DiplomatWrite* write);
58 size_t icu4x_Locale_variant_count_mv1(
const icu4x::capi::Locale* self);
60 typedef struct icu4x_Locale_variant_at_mv1_result {
bool is_ok;} icu4x_Locale_variant_at_mv1_result;
61 icu4x_Locale_variant_at_mv1_result icu4x_Locale_variant_at_mv1(
const icu4x::capi::Locale* self,
size_t index, icu4x::diplomat::capi::DiplomatWrite* write);
63 bool icu4x_Locale_has_variant_mv1(
const icu4x::capi::Locale* self, icu4x::diplomat::capi::DiplomatStringView s);
65 typedef struct icu4x_Locale_add_variant_mv1_result {
union {
bool ok; icu4x::capi::LocaleParseError err;};
bool is_ok;} icu4x_Locale_add_variant_mv1_result;
66 icu4x_Locale_add_variant_mv1_result icu4x_Locale_add_variant_mv1(icu4x::capi::Locale* self, icu4x::diplomat::capi::DiplomatStringView s);
68 bool icu4x_Locale_remove_variant_mv1(icu4x::capi::Locale* self, icu4x::diplomat::capi::DiplomatStringView s);
70 void icu4x_Locale_clear_variants_mv1(icu4x::capi::Locale* self);
72 typedef struct icu4x_Locale_normalize_mv1_result {
union { icu4x::capi::LocaleParseError err;};
bool is_ok;} icu4x_Locale_normalize_mv1_result;
73 icu4x_Locale_normalize_mv1_result icu4x_Locale_normalize_mv1(icu4x::diplomat::capi::DiplomatStringView s, icu4x::diplomat::capi::DiplomatWrite* write);
75 void icu4x_Locale_to_string_mv1(
const icu4x::capi::Locale* self, icu4x::diplomat::capi::DiplomatWrite* write);
77 bool icu4x_Locale_normalizing_eq_mv1(
const icu4x::capi::Locale* self, icu4x::diplomat::capi::DiplomatStringView other);
79 int8_t icu4x_Locale_compare_to_string_mv1(
const icu4x::capi::Locale* self, icu4x::diplomat::capi::DiplomatStringView other);
81 int8_t icu4x_Locale_compare_to_mv1(
const icu4x::capi::Locale* self,
const icu4x::capi::Locale* other);
83 void icu4x_Locale_destroy_mv1(Locale* self);
90 auto result = icu4x::capi::icu4x_Locale_from_string_mv1({name.data(), name.size()});
95 auto result = icu4x::capi::icu4x_Locale_unknown_mv1();
96 return std::unique_ptr<icu4x::Locale>(icu4x::Locale::FromFFI(result));
100 auto result = icu4x::capi::icu4x_Locale_unknown_ref_mv1();
101 return *icu4x::Locale::FromFFI(result);
105 auto result = icu4x::capi::icu4x_Locale_clone_mv1(this->AsFFI());
106 return std::unique_ptr<icu4x::Locale>(icu4x::Locale::FromFFI(result));
111 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
112 icu4x::capi::icu4x_Locale_basename_mv1(this->AsFFI(),
119 icu4x::capi::icu4x_Locale_basename_mv1(this->AsFFI(),
125 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
126 auto result = icu4x::capi::icu4x_Locale_get_unicode_extension_mv1(this->AsFFI(),
127 {s.data(), s.size()},
129 return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt;
134 auto result = icu4x::capi::icu4x_Locale_get_unicode_extension_mv1(this->AsFFI(),
135 {s.data(), s.size()},
137 return result.is_ok ? std::optional<std::monostate>() : std::nullopt;
141 auto result = icu4x::capi::icu4x_Locale_set_unicode_extension_mv1(this->AsFFI(),
142 {k.data(), k.size()},
143 {v.data(), v.size()});
144 return result.is_ok ? std::optional<std::monostate>() : std::nullopt;
149 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
150 icu4x::capi::icu4x_Locale_language_mv1(this->AsFFI(),
157 icu4x::capi::icu4x_Locale_language_mv1(this->AsFFI(),
162 auto result = icu4x::capi::icu4x_Locale_set_language_mv1(this->AsFFI(),
163 {s.data(), s.size()});
169 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
170 auto result = icu4x::capi::icu4x_Locale_region_mv1(this->AsFFI(),
172 return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt;
177 auto result = icu4x::capi::icu4x_Locale_region_mv1(this->AsFFI(),
179 return result.is_ok ? std::optional<std::monostate>() : std::nullopt;
183 auto result = icu4x::capi::icu4x_Locale_set_region_mv1(this->AsFFI(),
184 {s.data(), s.size()});
190 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
191 auto result = icu4x::capi::icu4x_Locale_script_mv1(this->AsFFI(),
193 return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt;
198 auto result = icu4x::capi::icu4x_Locale_script_mv1(this->AsFFI(),
200 return result.is_ok ? std::optional<std::monostate>() : std::nullopt;
204 auto result = icu4x::capi::icu4x_Locale_set_script_mv1(this->AsFFI(),
205 {s.data(), s.size()});
211 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
212 icu4x::capi::icu4x_Locale_variants_mv1(this->AsFFI(),
219 icu4x::capi::icu4x_Locale_variants_mv1(this->AsFFI(),
224 auto result = icu4x::capi::icu4x_Locale_variant_count_mv1(this->AsFFI());
230 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
231 auto result = icu4x::capi::icu4x_Locale_variant_at_mv1(this->AsFFI(),
234 return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt;
239 auto result = icu4x::capi::icu4x_Locale_variant_at_mv1(this->AsFFI(),
242 return result.is_ok ? std::optional<std::monostate>() : std::nullopt;
246 auto result = icu4x::capi::icu4x_Locale_has_variant_mv1(this->AsFFI(),
247 {s.data(), s.size()});
252 auto result = icu4x::capi::icu4x_Locale_add_variant_mv1(this->AsFFI(),
253 {s.data(), s.size()});
258 auto result = icu4x::capi::icu4x_Locale_remove_variant_mv1(this->AsFFI(),
259 {s.data(), s.size()});
264 icu4x::capi::icu4x_Locale_clear_variants_mv1(this->AsFFI());
269 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
270 auto result = icu4x::capi::icu4x_Locale_normalize_mv1({s.data(), s.size()},
277 auto result = icu4x::capi::icu4x_Locale_normalize_mv1({s.data(), s.size()},
284 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
285 icu4x::capi::icu4x_Locale_to_string_mv1(this->AsFFI(),
292 icu4x::capi::icu4x_Locale_to_string_mv1(this->AsFFI(),
297 auto result = icu4x::capi::icu4x_Locale_normalizing_eq_mv1(this->AsFFI(),
298 {other.data(), other.size()});
303 auto result = icu4x::capi::icu4x_Locale_compare_to_string_mv1(this->AsFFI(),
304 {other.data(), other.size()});
309 auto result = icu4x::capi::icu4x_Locale_compare_to_mv1(this->AsFFI(),
337inline const icu4x::capi::Locale* icu4x::Locale::AsFFI()
const {
338 return reinterpret_cast<const icu4x::capi::Locale*
>(
this);
341inline icu4x::capi::Locale* icu4x::Locale::AsFFI() {
342 return reinterpret_cast<icu4x::capi::Locale*
>(
this);
345inline const icu4x::Locale* icu4x::Locale::FromFFI(
const icu4x::capi::Locale* ptr) {
346 return reinterpret_cast<const icu4x::Locale*
>(ptr);
349inline icu4x::Locale* icu4x::Locale::FromFFI(icu4x::capi::Locale* ptr) {
350 return reinterpret_cast<icu4x::Locale*
>(ptr);
353inline void icu4x::Locale::operator
delete(
void* ptr) {
354 icu4x::capi::icu4x_Locale_destroy_mv1(
reinterpret_cast<icu4x::capi::Locale*
>(ptr));
Definition LocaleParseError.d.hpp:32
Definition Locale.d.hpp:33
std::optional< std::string > script() const
Definition Locale.hpp:188
int8_t compare_to(const icu4x::Locale &other) const
Definition Locale.hpp:308
std::unique_ptr< icu4x::Locale > clone() const
Definition Locale.hpp:104
std::string variants() const
Definition Locale.hpp:209
std::optional< std::monostate > script_write(W &writeable_output) const
Definition Locale.hpp:196
icu4x::diplomat::result< bool, icu4x::LocaleParseError > add_variant(std::string_view s)
Definition Locale.hpp:251
std::string basename() const
Definition Locale.hpp:109
static icu4x::diplomat::result< std::string, icu4x::LocaleParseError > normalize(std::string_view s)
Definition Locale.hpp:267
bool operator>=(const icu4x::Locale &other) const
Definition Locale.hpp:325
static std::unique_ptr< icu4x::Locale > unknown()
Definition Locale.hpp:94
void basename_write(W &writeable_output) const
Definition Locale.hpp:117
void language_write(W &writeable_output) const
Definition Locale.hpp:155
bool operator>(const icu4x::Locale &other) const
Definition Locale.hpp:333
bool remove_variant(std::string_view s)
Definition Locale.hpp:257
std::string to_string() const
Definition Locale.hpp:282
bool normalizing_eq(std::string_view other) const
Definition Locale.hpp:296
std::optional< std::string > get_unicode_extension(std::string_view s) const
Definition Locale.hpp:123
bool operator<=(const icu4x::Locale &other) const
Definition Locale.hpp:321
icu4x::diplomat::result< std::monostate, icu4x::LocaleParseError > set_script(std::string_view s)
Definition Locale.hpp:203
std::optional< std::monostate > get_unicode_extension_write(std::string_view s, W &writeable_output) const
Definition Locale.hpp:132
bool operator<(const icu4x::Locale &other) const
Definition Locale.hpp:329
static icu4x::diplomat::result< std::monostate, icu4x::LocaleParseError > normalize_write(std::string_view s, W &writeable_output)
Definition Locale.hpp:275
std::optional< std::monostate > region_write(W &writeable_output) const
Definition Locale.hpp:175
void variants_write(W &writeable_output) const
Definition Locale.hpp:217
std::optional< std::monostate > set_unicode_extension(std::string_view k, std::string_view v)
Definition Locale.hpp:140
void to_string_write(W &writeable_output) const
Definition Locale.hpp:290
bool has_variant(std::string_view s) const
Definition Locale.hpp:245
size_t variant_count() const
Definition Locale.hpp:223
bool operator!=(const icu4x::Locale &other) const
Definition Locale.hpp:317
void clear_variants()
Definition Locale.hpp:263
static icu4x::diplomat::result< std::unique_ptr< icu4x::Locale >, icu4x::LocaleParseError > from_string(std::string_view name)
Definition Locale.hpp:89
std::optional< std::string > region() const
Definition Locale.hpp:167
bool operator==(const icu4x::Locale &other) const
Definition Locale.hpp:313
icu4x::diplomat::result< std::monostate, icu4x::LocaleParseError > set_region(std::string_view s)
Definition Locale.hpp:182
icu4x::diplomat::result< std::monostate, icu4x::LocaleParseError > set_language(std::string_view s)
Definition Locale.hpp:161
std::string language() const
Definition Locale.hpp:147
std::optional< std::string > variant_at(size_t index) const
Definition Locale.hpp:228
static const icu4x::Locale & unknown_ref()
Definition Locale.hpp:99
int8_t compare_to_string(std::string_view other) const
Definition Locale.hpp:302
std::optional< std::monostate > variant_at_write(size_t index, W &writeable_output) const
Definition Locale.hpp:237
Definition diplomat_runtime.hpp:166
bool is_ok() const
Definition diplomat_runtime.hpp:181
Definition diplomat_runtime.hpp:146
Definition diplomat_runtime.hpp:128
Definition diplomat_runtime.hpp:117