ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
PluralRules.hpp
Go to the documentation of this file.
1#ifndef icu4x_PluralRules_HPP
2#define icu4x_PluralRules_HPP
3
4#include "PluralRules.d.hpp"
5
6#include <stdio.h>
7#include <stdint.h>
8#include <stddef.h>
9#include <stdbool.h>
10#include <memory>
11#include <functional>
12#include <optional>
13#include <cstdlib>
15#include "DataError.hpp"
16#include "DataProvider.hpp"
17#include "Locale.hpp"
18#include "PluralCategories.hpp"
19#include "PluralCategory.hpp"
20#include "PluralOperands.hpp"
21
22
23namespace icu4x {
24namespace capi {
25 extern "C" {
26
27 typedef struct icu4x_PluralRules_create_cardinal_mv1_result {union {icu4x::capi::PluralRules* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PluralRules_create_cardinal_mv1_result;
28 icu4x_PluralRules_create_cardinal_mv1_result icu4x_PluralRules_create_cardinal_mv1(const icu4x::capi::Locale* locale);
29
30 typedef struct icu4x_PluralRules_create_cardinal_with_provider_mv1_result {union {icu4x::capi::PluralRules* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PluralRules_create_cardinal_with_provider_mv1_result;
31 icu4x_PluralRules_create_cardinal_with_provider_mv1_result icu4x_PluralRules_create_cardinal_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
32
33 typedef struct icu4x_PluralRules_create_ordinal_mv1_result {union {icu4x::capi::PluralRules* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PluralRules_create_ordinal_mv1_result;
34 icu4x_PluralRules_create_ordinal_mv1_result icu4x_PluralRules_create_ordinal_mv1(const icu4x::capi::Locale* locale);
35
36 typedef struct icu4x_PluralRules_create_ordinal_with_provider_mv1_result {union {icu4x::capi::PluralRules* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PluralRules_create_ordinal_with_provider_mv1_result;
37 icu4x_PluralRules_create_ordinal_with_provider_mv1_result icu4x_PluralRules_create_ordinal_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
38
39 icu4x::capi::PluralCategory icu4x_PluralRules_category_for_mv1(const icu4x::capi::PluralRules* self, const icu4x::capi::PluralOperands* op);
40
41 icu4x::capi::PluralCategories icu4x_PluralRules_categories_mv1(const icu4x::capi::PluralRules* self);
42
43 void icu4x_PluralRules_destroy_mv1(PluralRules* self);
44
45 } // extern "C"
46} // namespace capi
47} // namespace
48
50 auto result = icu4x::capi::icu4x_PluralRules_create_cardinal_mv1(locale.AsFFI());
51 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PluralRules>>(std::unique_ptr<icu4x::PluralRules>(icu4x::PluralRules::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
52}
53
55 auto result = icu4x::capi::icu4x_PluralRules_create_cardinal_with_provider_mv1(provider.AsFFI(),
56 locale.AsFFI());
57 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PluralRules>>(std::unique_ptr<icu4x::PluralRules>(icu4x::PluralRules::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
58}
59
61 auto result = icu4x::capi::icu4x_PluralRules_create_ordinal_mv1(locale.AsFFI());
62 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PluralRules>>(std::unique_ptr<icu4x::PluralRules>(icu4x::PluralRules::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
63}
64
66 auto result = icu4x::capi::icu4x_PluralRules_create_ordinal_with_provider_mv1(provider.AsFFI(),
67 locale.AsFFI());
68 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Ok<std::unique_ptr<icu4x::PluralRules>>(std::unique_ptr<icu4x::PluralRules>(icu4x::PluralRules::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::PluralRules>, icu4x::DataError>(diplomat::Err<icu4x::DataError>(icu4x::DataError::FromFFI(result.err)));
69}
70
72 auto result = icu4x::capi::icu4x_PluralRules_category_for_mv1(this->AsFFI(),
73 op.AsFFI());
74 return icu4x::PluralCategory::FromFFI(result);
75}
76
78 auto result = icu4x::capi::icu4x_PluralRules_categories_mv1(this->AsFFI());
79 return icu4x::PluralCategories::FromFFI(result);
80}
81
82inline const icu4x::capi::PluralRules* icu4x::PluralRules::AsFFI() const {
83 return reinterpret_cast<const icu4x::capi::PluralRules*>(this);
84}
85
86inline icu4x::capi::PluralRules* icu4x::PluralRules::AsFFI() {
87 return reinterpret_cast<icu4x::capi::PluralRules*>(this);
88}
89
90inline const icu4x::PluralRules* icu4x::PluralRules::FromFFI(const icu4x::capi::PluralRules* ptr) {
91 return reinterpret_cast<const icu4x::PluralRules*>(ptr);
92}
93
94inline icu4x::PluralRules* icu4x::PluralRules::FromFFI(icu4x::capi::PluralRules* ptr) {
95 return reinterpret_cast<icu4x::PluralRules*>(ptr);
96}
97
98inline void icu4x::PluralRules::operator delete(void* ptr) {
99 icu4x::capi::icu4x_PluralRules_destroy_mv1(reinterpret_cast<icu4x::capi::PluralRules*>(ptr));
100}
101
102
103#endif // icu4x_PluralRules_HPP
Definition diplomat_runtime.hpp:140
Definition DataError.d.hpp:37
Definition DataProvider.d.hpp:40
Definition Locale.d.hpp:33
Definition PluralCategory.d.hpp:38
Definition PluralOperands.d.hpp:33
static diplomat::result< std::unique_ptr< icu4x::PluralRules >, icu4x::DataError > create_cardinal(const icu4x::Locale &locale)
Definition PluralRules.hpp:49
static diplomat::result< std::unique_ptr< icu4x::PluralRules >, icu4x::DataError > create_ordinal_with_provider(const icu4x::DataProvider &provider, const icu4x::Locale &locale)
Definition PluralRules.hpp:65
static diplomat::result< std::unique_ptr< icu4x::PluralRules >, icu4x::DataError > create_cardinal_with_provider(const icu4x::DataProvider &provider, const icu4x::Locale &locale)
Definition PluralRules.hpp:54
static diplomat::result< std::unique_ptr< icu4x::PluralRules >, icu4x::DataError > create_ordinal(const icu4x::Locale &locale)
Definition PluralRules.hpp:60
icu4x::PluralCategories categories() const
Definition PluralRules.hpp:77
icu4x::PluralCategory category_for(const icu4x::PluralOperands &op) const
Definition PluralRules.hpp:71
Definition Bidi.d.hpp:14
Definition diplomat_runtime.hpp:125
Definition diplomat_runtime.hpp:111
Definition PluralCategories.d.hpp:32