12#include "ICU4XLocale.h"
21struct ICU4XLocaleDeleter {
22 void operator()(capi::ICU4XLocale* l)
const noexcept {
23 capi::ICU4XLocale_destroy(l);
213 inline const capi::ICU4XLocale* AsFFI()
const {
return this->inner.get(); }
214 inline capi::ICU4XLocale* AsFFIMut() {
return this->inner.get(); }
220 std::unique_ptr<capi::
ICU4XLocale, ICU4XLocaleDeleter> inner;
225 auto diplomat_result_raw_out_value = capi::ICU4XLocale_create_from_string(name.data(), name.size());
227 if (diplomat_result_raw_out_value.is_ok) {
232 return diplomat_result_out_value;
235 return ICU4XLocale(capi::ICU4XLocale_create_und());
238 return ICU4XLocale(capi::ICU4XLocale_clone(this->inner.get()));
241 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
242 auto diplomat_result_raw_out_value = capi::ICU4XLocale_basename(this->inner.get(), &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::ICU4XLocale_basename(this->inner.get(), &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));
264 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
265 auto diplomat_result_raw_out_value = capi::ICU4XLocale_get_unicode_extension(this->inner.get(), bytes.data(), bytes.size(), &write_writer);
267 if (diplomat_result_raw_out_value.is_ok) {
272 return diplomat_result_out_value;
275 std::string diplomat_writeable_string;
277 auto diplomat_result_raw_out_value = capi::ICU4XLocale_get_unicode_extension(this->inner.get(), bytes.data(), bytes.size(), &diplomat_writeable_out);
279 if (diplomat_result_raw_out_value.is_ok) {
284 return diplomat_result_out_value.
replace_ok(std::move(diplomat_writeable_string));
287 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
288 auto diplomat_result_raw_out_value = capi::ICU4XLocale_language(this->inner.get(), &write_writer);
290 if (diplomat_result_raw_out_value.is_ok) {
295 return diplomat_result_out_value;
298 std::string diplomat_writeable_string;
300 auto diplomat_result_raw_out_value = capi::ICU4XLocale_language(this->inner.get(), &diplomat_writeable_out);
302 if (diplomat_result_raw_out_value.is_ok) {
307 return diplomat_result_out_value.
replace_ok(std::move(diplomat_writeable_string));
310 auto diplomat_result_raw_out_value = capi::ICU4XLocale_set_language(this->inner.get(), bytes.data(), bytes.size());
312 if (diplomat_result_raw_out_value.is_ok) {
317 return diplomat_result_out_value;
320 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
321 auto diplomat_result_raw_out_value = capi::ICU4XLocale_region(this->inner.get(), &write_writer);
323 if (diplomat_result_raw_out_value.is_ok) {
328 return diplomat_result_out_value;
331 std::string diplomat_writeable_string;
333 auto diplomat_result_raw_out_value = capi::ICU4XLocale_region(this->inner.get(), &diplomat_writeable_out);
335 if (diplomat_result_raw_out_value.is_ok) {
340 return diplomat_result_out_value.
replace_ok(std::move(diplomat_writeable_string));
343 auto diplomat_result_raw_out_value = capi::ICU4XLocale_set_region(this->inner.get(), bytes.data(), bytes.size());
345 if (diplomat_result_raw_out_value.is_ok) {
350 return diplomat_result_out_value;
353 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
354 auto diplomat_result_raw_out_value = capi::ICU4XLocale_script(this->inner.get(), &write_writer);
356 if (diplomat_result_raw_out_value.is_ok) {
361 return diplomat_result_out_value;
364 std::string diplomat_writeable_string;
366 auto diplomat_result_raw_out_value = capi::ICU4XLocale_script(this->inner.get(), &diplomat_writeable_out);
368 if (diplomat_result_raw_out_value.is_ok) {
373 return diplomat_result_out_value.
replace_ok(std::move(diplomat_writeable_string));
376 auto diplomat_result_raw_out_value = capi::ICU4XLocale_set_script(this->inner.get(), bytes.data(), bytes.size());
378 if (diplomat_result_raw_out_value.is_ok) {
383 return diplomat_result_out_value;
386 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
387 auto diplomat_result_raw_out_value = capi::ICU4XLocale_canonicalize(bytes.data(), bytes.size(), &write_writer);
389 if (diplomat_result_raw_out_value.is_ok) {
394 return diplomat_result_out_value;
397 std::string diplomat_writeable_string;
399 auto diplomat_result_raw_out_value = capi::ICU4XLocale_canonicalize(bytes.data(), bytes.size(), &diplomat_writeable_out);
401 if (diplomat_result_raw_out_value.is_ok) {
406 return diplomat_result_out_value.
replace_ok(std::move(diplomat_writeable_string));
409 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
410 auto diplomat_result_raw_out_value = capi::ICU4XLocale_to_string(this->inner.get(), &write_writer);
412 if (diplomat_result_raw_out_value.is_ok) {
417 return diplomat_result_out_value;
420 std::string diplomat_writeable_string;
422 auto diplomat_result_raw_out_value = capi::ICU4XLocale_to_string(this->inner.get(), &diplomat_writeable_out);
424 if (diplomat_result_raw_out_value.is_ok) {
429 return diplomat_result_out_value.
replace_ok(std::move(diplomat_writeable_string));
432 return capi::ICU4XLocale_normalizing_eq(this->inner.get(), other.data(), other.size());
435 return static_cast<ICU4XOrdering>(capi::ICU4XLocale_strict_cmp(this->inner.get(), other.data(), other.size()));
438 return static_cast<ICU4XOrdering>(capi::ICU4XLocale_total_cmp(this->inner.get(), other.AsFFI()));
ICU4XError
Definition ICU4XError.hpp:23
ICU4XOrdering
Definition ICU4XOrdering.hpp:19
Definition ICU4XLocale.hpp:32
diplomat::result< std::monostate, ICU4XError > basename_to_writeable(W &write) const
Definition ICU4XLocale.hpp:240
static ICU4XLocale create_bn()
Definition ICU4XLocale.hpp:443
diplomat::result< std::monostate, ICU4XError > region_to_writeable(W &write) const
Definition ICU4XLocale.hpp:319
bool normalizing_eq(const std::string_view other) const
Definition ICU4XLocale.hpp:431
ICU4XLocale(ICU4XLocale &&) noexcept=default
diplomat::result< std::monostate, ICU4XError > get_unicode_extension_to_writeable(const std::string_view bytes, W &write) const
Definition ICU4XLocale.hpp:263
diplomat::result< std::monostate, ICU4XError > set_region(const std::string_view bytes)
Definition ICU4XLocale.hpp:342
static ICU4XLocale create_en()
Definition ICU4XLocale.hpp:440
diplomat::result< std::monostate, ICU4XError > to_string_to_writeable(W &write) const
Definition ICU4XLocale.hpp:408
static diplomat::result< std::string, ICU4XError > canonicalize(const std::string_view bytes)
Definition ICU4XLocale.hpp:396
diplomat::result< std::monostate, ICU4XError > script_to_writeable(W &write) const
Definition ICU4XLocale.hpp:352
ICU4XOrdering strict_cmp(const std::string_view other) const
Definition ICU4XLocale.hpp:434
ICU4XOrdering total_cmp(const ICU4XLocale &other) const
Definition ICU4XLocale.hpp:437
diplomat::result< std::monostate, ICU4XError > language_to_writeable(W &write) const
Definition ICU4XLocale.hpp:286
static diplomat::result< ICU4XLocale, ICU4XError > create_from_string(const std::string_view name)
Definition ICU4XLocale.hpp:224
ICU4XLocale clone() const
Definition ICU4XLocale.hpp:237
diplomat::result< std::string, ICU4XError > to_string() const
Definition ICU4XLocale.hpp:419
diplomat::result< std::monostate, ICU4XError > set_script(const std::string_view bytes)
Definition ICU4XLocale.hpp:375
static ICU4XLocale create_und()
Definition ICU4XLocale.hpp:234
diplomat::result< std::string, ICU4XError > region() const
Definition ICU4XLocale.hpp:330
static diplomat::result< std::monostate, ICU4XError > canonicalize_to_writeable(const std::string_view bytes, W &write)
Definition ICU4XLocale.hpp:385
ICU4XLocale(capi::ICU4XLocale *i)
Definition ICU4XLocale.hpp:215
diplomat::result< std::monostate, ICU4XError > set_language(const std::string_view bytes)
Definition ICU4XLocale.hpp:309
diplomat::result< std::string, ICU4XError > basename() const
Definition ICU4XLocale.hpp:251
diplomat::result< std::string, ICU4XError > language() const
Definition ICU4XLocale.hpp:297
diplomat::result< std::string, ICU4XError > get_unicode_extension(const std::string_view bytes) const
Definition ICU4XLocale.hpp:274
diplomat::result< std::string, ICU4XError > script() const
Definition ICU4XLocale.hpp:363
Definition diplomat_runtime.hpp:84
result< T2, E > replace_ok(T2 &&t)
Definition diplomat_runtime.hpp:125
Definition diplomat_runtime.hpp:16
capi::DiplomatWriteable WriteableFromString(std::string &string)
Definition diplomat_runtime.hpp:31
Definition diplomat_runtime.hpp:69
Definition diplomat_runtime.hpp:55