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(diplomat::capi::DiplomatStringView name);
25 icu4x::capi::Locale* icu4x_Locale_unknown_mv1(
void);
27 icu4x::capi::Locale* icu4x_Locale_clone_mv1(
const icu4x::capi::Locale* self);
29 void icu4x_Locale_basename_mv1(
const icu4x::capi::Locale* self, diplomat::capi::DiplomatWrite* write);
31 typedef struct icu4x_Locale_get_unicode_extension_mv1_result {
bool is_ok;} icu4x_Locale_get_unicode_extension_mv1_result;
32 icu4x_Locale_get_unicode_extension_mv1_result icu4x_Locale_get_unicode_extension_mv1(
const icu4x::capi::Locale* self, diplomat::capi::DiplomatStringView s, diplomat::capi::DiplomatWrite* write);
34 void icu4x_Locale_language_mv1(
const icu4x::capi::Locale* self, diplomat::capi::DiplomatWrite* write);
36 typedef struct icu4x_Locale_set_language_mv1_result {
union { icu4x::capi::LocaleParseError err;};
bool is_ok;} icu4x_Locale_set_language_mv1_result;
37 icu4x_Locale_set_language_mv1_result icu4x_Locale_set_language_mv1(icu4x::capi::Locale* self, diplomat::capi::DiplomatStringView s);
39 typedef struct icu4x_Locale_region_mv1_result {
bool is_ok;} icu4x_Locale_region_mv1_result;
40 icu4x_Locale_region_mv1_result icu4x_Locale_region_mv1(
const icu4x::capi::Locale* self, diplomat::capi::DiplomatWrite* write);
42 typedef struct icu4x_Locale_set_region_mv1_result {
union { icu4x::capi::LocaleParseError err;};
bool is_ok;} icu4x_Locale_set_region_mv1_result;
43 icu4x_Locale_set_region_mv1_result icu4x_Locale_set_region_mv1(icu4x::capi::Locale* self, diplomat::capi::DiplomatStringView s);
45 typedef struct icu4x_Locale_script_mv1_result {
bool is_ok;} icu4x_Locale_script_mv1_result;
46 icu4x_Locale_script_mv1_result icu4x_Locale_script_mv1(
const icu4x::capi::Locale* self, diplomat::capi::DiplomatWrite* write);
48 typedef struct icu4x_Locale_set_script_mv1_result {
union { icu4x::capi::LocaleParseError err;};
bool is_ok;} icu4x_Locale_set_script_mv1_result;
49 icu4x_Locale_set_script_mv1_result icu4x_Locale_set_script_mv1(icu4x::capi::Locale* self, diplomat::capi::DiplomatStringView s);
51 typedef struct icu4x_Locale_normalize_mv1_result {
union { icu4x::capi::LocaleParseError err;};
bool is_ok;} icu4x_Locale_normalize_mv1_result;
52 icu4x_Locale_normalize_mv1_result icu4x_Locale_normalize_mv1(diplomat::capi::DiplomatStringView s, diplomat::capi::DiplomatWrite* write);
54 void icu4x_Locale_to_string_mv1(
const icu4x::capi::Locale* self, diplomat::capi::DiplomatWrite* write);
56 bool icu4x_Locale_normalizing_eq_mv1(
const icu4x::capi::Locale* self, diplomat::capi::DiplomatStringView other);
58 int8_t icu4x_Locale_compare_to_string_mv1(
const icu4x::capi::Locale* self, diplomat::capi::DiplomatStringView other);
60 int8_t icu4x_Locale_compare_to_mv1(
const icu4x::capi::Locale* self,
const icu4x::capi::Locale* other);
62 void icu4x_Locale_destroy_mv1(Locale* self);
69 auto result = icu4x::capi::icu4x_Locale_from_string_mv1({name.data(), name.size()});
74 auto result = icu4x::capi::icu4x_Locale_unknown_mv1();
75 return std::unique_ptr<icu4x::Locale>(icu4x::Locale::FromFFI(result));
79 auto result = icu4x::capi::icu4x_Locale_clone_mv1(this->AsFFI());
80 return std::unique_ptr<icu4x::Locale>(icu4x::Locale::FromFFI(result));
85 diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
86 icu4x::capi::icu4x_Locale_basename_mv1(this->AsFFI(),
93 diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
94 auto result = icu4x::capi::icu4x_Locale_get_unicode_extension_mv1(this->AsFFI(),
97 return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt;
102 diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
103 icu4x::capi::icu4x_Locale_language_mv1(this->AsFFI(),
109 auto result = icu4x::capi::icu4x_Locale_set_language_mv1(this->AsFFI(),
110 {s.data(), s.size()});
116 diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
117 auto result = icu4x::capi::icu4x_Locale_region_mv1(this->AsFFI(),
119 return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt;
123 auto result = icu4x::capi::icu4x_Locale_set_region_mv1(this->AsFFI(),
124 {s.data(), s.size()});
130 diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
131 auto result = icu4x::capi::icu4x_Locale_script_mv1(this->AsFFI(),
133 return result.is_ok ? std::optional<std::string>(std::move(output)) : std::nullopt;
137 auto result = icu4x::capi::icu4x_Locale_set_script_mv1(this->AsFFI(),
138 {s.data(), s.size()});
144 diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
145 auto result = icu4x::capi::icu4x_Locale_normalize_mv1({s.data(), s.size()},
152 diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
153 icu4x::capi::icu4x_Locale_to_string_mv1(this->AsFFI(),
159 auto result = icu4x::capi::icu4x_Locale_normalizing_eq_mv1(this->AsFFI(),
160 {other.data(), other.size()});
165 auto result = icu4x::capi::icu4x_Locale_compare_to_string_mv1(this->AsFFI(),
166 {other.data(), other.size()});
171 auto result = icu4x::capi::icu4x_Locale_compare_to_mv1(this->AsFFI(),
199inline const icu4x::capi::Locale* icu4x::Locale::AsFFI()
const {
200 return reinterpret_cast<const icu4x::capi::Locale*
>(
this);
203inline icu4x::capi::Locale* icu4x::Locale::AsFFI() {
204 return reinterpret_cast<icu4x::capi::Locale*
>(
this);
207inline const icu4x::Locale* icu4x::Locale::FromFFI(
const icu4x::capi::Locale* ptr) {
208 return reinterpret_cast<const icu4x::Locale*
>(ptr);
211inline icu4x::Locale* icu4x::Locale::FromFFI(icu4x::capi::Locale* ptr) {
212 return reinterpret_cast<icu4x::Locale*
>(ptr);
215inline void icu4x::Locale::operator
delete(
void* ptr) {
216 icu4x::capi::icu4x_Locale_destroy_mv1(
reinterpret_cast<icu4x::capi::Locale*
>(ptr));
Definition diplomat_runtime.hpp:140
bool is_ok() const
Definition diplomat_runtime.hpp:152
Definition LocaleParseError.d.hpp:32
Definition Locale.d.hpp:33
std::optional< std::string > script() const
Definition Locale.hpp:128
int8_t compare_to(const icu4x::Locale &other) const
Definition Locale.hpp:170
diplomat::result< std::monostate, icu4x::LocaleParseError > set_script(std::string_view s)
Definition Locale.hpp:136
std::unique_ptr< icu4x::Locale > clone() const
Definition Locale.hpp:78
diplomat::result< std::monostate, icu4x::LocaleParseError > set_language(std::string_view s)
Definition Locale.hpp:108
diplomat::result< std::monostate, icu4x::LocaleParseError > set_region(std::string_view s)
Definition Locale.hpp:122
std::string basename() const
Definition Locale.hpp:83
bool operator>=(const icu4x::Locale &other) const
Definition Locale.hpp:187
static std::unique_ptr< icu4x::Locale > unknown()
Definition Locale.hpp:73
static diplomat::result< std::unique_ptr< icu4x::Locale >, icu4x::LocaleParseError > from_string(std::string_view name)
Definition Locale.hpp:68
bool operator>(const icu4x::Locale &other) const
Definition Locale.hpp:195
std::string to_string() const
Definition Locale.hpp:150
bool normalizing_eq(std::string_view other) const
Definition Locale.hpp:158
std::optional< std::string > get_unicode_extension(std::string_view s) const
Definition Locale.hpp:91
bool operator<=(const icu4x::Locale &other) const
Definition Locale.hpp:183
bool operator<(const icu4x::Locale &other) const
Definition Locale.hpp:191
bool operator!=(const icu4x::Locale &other) const
Definition Locale.hpp:179
std::optional< std::string > region() const
Definition Locale.hpp:114
bool operator==(const icu4x::Locale &other) const
Definition Locale.hpp:175
std::string language() const
Definition Locale.hpp:100
int8_t compare_to_string(std::string_view other) const
Definition Locale.hpp:164
static diplomat::result< std::string, icu4x::LocaleParseError > normalize(std::string_view s)
Definition Locale.hpp:142
Definition diplomat_runtime.hpp:125
Definition diplomat_runtime.hpp:111