ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
ICU4XLocaleDirectionality.hpp
Go to the documentation of this file.
1#ifndef ICU4XLocaleDirectionality_HPP
2#define ICU4XLocaleDirectionality_HPP
3#include <stdint.h>
4#include <stddef.h>
5#include <stdbool.h>
6#include <algorithm>
7#include <memory>
8#include <variant>
9#include <optional>
10#include "diplomat_runtime.hpp"
11
12#include "ICU4XLocaleDirectionality.h"
13
16#include "ICU4XError.hpp"
18class ICU4XLocale;
20
24struct ICU4XLocaleDirectionalityDeleter {
25 void operator()(capi::ICU4XLocaleDirectionality* l) const noexcept {
26 capi::ICU4XLocaleDirectionality_destroy(l);
27 }
28};
29
34 public:
35
42
49
53 ICU4XLocaleDirection get(const ICU4XLocale& locale) const;
54
58 bool is_left_to_right(const ICU4XLocale& locale) const;
59
63 bool is_right_to_left(const ICU4XLocale& locale) const;
64 inline const capi::ICU4XLocaleDirectionality* AsFFI() const { return this->inner.get(); }
65 inline capi::ICU4XLocaleDirectionality* AsFFIMut() { return this->inner.get(); }
66 inline explicit ICU4XLocaleDirectionality(capi::ICU4XLocaleDirectionality* i) : inner(i) {}
69 ICU4XLocaleDirectionality& operator=(ICU4XLocaleDirectionality&& other) noexcept = default;
70 private:
71 std::unique_ptr<capi::ICU4XLocaleDirectionality, ICU4XLocaleDirectionalityDeleter> inner;
72};
73
74#include "ICU4XDataProvider.hpp"
76#include "ICU4XLocale.hpp"
77
79 auto diplomat_result_raw_out_value = capi::ICU4XLocaleDirectionality_create(provider.AsFFI());
81 if (diplomat_result_raw_out_value.is_ok) {
82 diplomat_result_out_value = diplomat::Ok<ICU4XLocaleDirectionality>(ICU4XLocaleDirectionality(diplomat_result_raw_out_value.ok));
83 } else {
84 diplomat_result_out_value = diplomat::Err<ICU4XError>(static_cast<ICU4XError>(diplomat_result_raw_out_value.err));
85 }
86 return diplomat_result_out_value;
87}
89 auto diplomat_result_raw_out_value = capi::ICU4XLocaleDirectionality_create_with_expander(provider.AsFFI(), expander.AsFFI());
91 if (diplomat_result_raw_out_value.is_ok) {
92 diplomat_result_out_value = diplomat::Ok<ICU4XLocaleDirectionality>(ICU4XLocaleDirectionality(diplomat_result_raw_out_value.ok));
93 } else {
94 diplomat_result_out_value = diplomat::Err<ICU4XError>(static_cast<ICU4XError>(diplomat_result_raw_out_value.err));
95 }
96 return diplomat_result_out_value;
97}
99 return static_cast<ICU4XLocaleDirection>(capi::ICU4XLocaleDirectionality_get(this->inner.get(), locale.AsFFI()));
100}
102 return capi::ICU4XLocaleDirectionality_is_left_to_right(this->inner.get(), locale.AsFFI());
103}
105 return capi::ICU4XLocaleDirectionality_is_right_to_left(this->inner.get(), locale.AsFFI());
106}
107#endif
ICU4XError
Definition ICU4XError.hpp:23
ICU4XLocaleDirection
Definition ICU4XLocaleDirection.hpp:19
Definition ICU4XDataProvider.hpp:32
Definition ICU4XLocaleDirectionality.hpp:33
bool is_right_to_left(const ICU4XLocale &locale) const
Definition ICU4XLocaleDirectionality.hpp:104
ICU4XLocaleDirectionality(capi::ICU4XLocaleDirectionality *i)
Definition ICU4XLocaleDirectionality.hpp:66
ICU4XLocaleDirectionality()=default
ICU4XLocaleDirectionality(ICU4XLocaleDirectionality &&) noexcept=default
static diplomat::result< ICU4XLocaleDirectionality, ICU4XError > create_with_expander(const ICU4XDataProvider &provider, const ICU4XLocaleExpander &expander)
Definition ICU4XLocaleDirectionality.hpp:88
ICU4XLocaleDirection get(const ICU4XLocale &locale) const
Definition ICU4XLocaleDirectionality.hpp:98
static diplomat::result< ICU4XLocaleDirectionality, ICU4XError > create(const ICU4XDataProvider &provider)
Definition ICU4XLocaleDirectionality.hpp:78
bool is_left_to_right(const ICU4XLocale &locale) const
Definition ICU4XLocaleDirectionality.hpp:101
Definition ICU4XLocaleExpander.hpp:34
Definition ICU4XLocale.hpp:32
Definition diplomat_runtime.hpp:84
Definition diplomat_runtime.hpp:69
Definition diplomat_runtime.hpp:55