ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
PluralRulesWithRanges.hpp
Go to the documentation of this file.
1#ifndef ICU4X_PluralRulesWithRanges_HPP
2#define ICU4X_PluralRulesWithRanges_HPP
3
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>
14#include "DataError.hpp"
15#include "DataProvider.hpp"
16#include "Locale.hpp"
17#include "PluralCategory.hpp"
18#include "PluralOperands.hpp"
19#include "diplomat_runtime.hpp"
20
21
22namespace icu4x {
23namespace capi {
24 extern "C" {
25
26 typedef struct icu4x_PluralRulesWithRanges_create_cardinal_mv1_result {union {icu4x::capi::PluralRulesWithRanges* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PluralRulesWithRanges_create_cardinal_mv1_result;
27 icu4x_PluralRulesWithRanges_create_cardinal_mv1_result icu4x_PluralRulesWithRanges_create_cardinal_mv1(const icu4x::capi::Locale* locale);
28
29 typedef struct icu4x_PluralRulesWithRanges_create_cardinal_with_provider_mv1_result {union {icu4x::capi::PluralRulesWithRanges* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PluralRulesWithRanges_create_cardinal_with_provider_mv1_result;
30 icu4x_PluralRulesWithRanges_create_cardinal_with_provider_mv1_result icu4x_PluralRulesWithRanges_create_cardinal_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
31
32 typedef struct icu4x_PluralRulesWithRanges_create_ordinal_mv1_result {union {icu4x::capi::PluralRulesWithRanges* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PluralRulesWithRanges_create_ordinal_mv1_result;
33 icu4x_PluralRulesWithRanges_create_ordinal_mv1_result icu4x_PluralRulesWithRanges_create_ordinal_mv1(const icu4x::capi::Locale* locale);
34
35 typedef struct icu4x_PluralRulesWithRanges_create_ordinal_with_provider_mv1_result {union {icu4x::capi::PluralRulesWithRanges* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_PluralRulesWithRanges_create_ordinal_with_provider_mv1_result;
36 icu4x_PluralRulesWithRanges_create_ordinal_with_provider_mv1_result icu4x_PluralRulesWithRanges_create_ordinal_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale);
37
38 icu4x::capi::PluralCategory icu4x_PluralRulesWithRanges_category_for_range_mv1(const icu4x::capi::PluralRulesWithRanges* self, const icu4x::capi::PluralOperands* start, const icu4x::capi::PluralOperands* end);
39
40 void icu4x_PluralRulesWithRanges_destroy_mv1(PluralRulesWithRanges* self);
41
42 } // extern "C"
43} // namespace capi
44} // namespace
45
47 auto result = icu4x::capi::icu4x_PluralRulesWithRanges_create_cardinal_mv1(locale.AsFFI());
49}
50
52 auto result = icu4x::capi::icu4x_PluralRulesWithRanges_create_cardinal_with_provider_mv1(provider.AsFFI(),
53 locale.AsFFI());
55}
56
58 auto result = icu4x::capi::icu4x_PluralRulesWithRanges_create_ordinal_mv1(locale.AsFFI());
60}
61
63 auto result = icu4x::capi::icu4x_PluralRulesWithRanges_create_ordinal_with_provider_mv1(provider.AsFFI(),
64 locale.AsFFI());
66}
67
69 auto result = icu4x::capi::icu4x_PluralRulesWithRanges_category_for_range_mv1(this->AsFFI(),
70 start.AsFFI(),
71 end.AsFFI());
72 return icu4x::PluralCategory::FromFFI(result);
73}
74
75inline const icu4x::capi::PluralRulesWithRanges* icu4x::PluralRulesWithRanges::AsFFI() const {
76 return reinterpret_cast<const icu4x::capi::PluralRulesWithRanges*>(this);
77}
78
79inline icu4x::capi::PluralRulesWithRanges* icu4x::PluralRulesWithRanges::AsFFI() {
80 return reinterpret_cast<icu4x::capi::PluralRulesWithRanges*>(this);
81}
82
83inline const icu4x::PluralRulesWithRanges* icu4x::PluralRulesWithRanges::FromFFI(const icu4x::capi::PluralRulesWithRanges* ptr) {
84 return reinterpret_cast<const icu4x::PluralRulesWithRanges*>(ptr);
85}
86
87inline icu4x::PluralRulesWithRanges* icu4x::PluralRulesWithRanges::FromFFI(icu4x::capi::PluralRulesWithRanges* ptr) {
88 return reinterpret_cast<icu4x::PluralRulesWithRanges*>(ptr);
89}
90
91inline void icu4x::PluralRulesWithRanges::operator delete(void* ptr) {
92 icu4x::capi::icu4x_PluralRulesWithRanges_destroy_mv1(reinterpret_cast<icu4x::capi::PluralRulesWithRanges*>(ptr));
93}
94
95
96#endif // ICU4X_PluralRulesWithRanges_HPP
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 icu4x::diplomat::result< std::unique_ptr< icu4x::PluralRulesWithRanges >, icu4x::DataError > create_cardinal(const icu4x::Locale &locale)
Definition PluralRulesWithRanges.hpp:46
static icu4x::diplomat::result< std::unique_ptr< icu4x::PluralRulesWithRanges >, icu4x::DataError > create_ordinal(const icu4x::Locale &locale)
Definition PluralRulesWithRanges.hpp:57
static icu4x::diplomat::result< std::unique_ptr< icu4x::PluralRulesWithRanges >, icu4x::DataError > create_ordinal_with_provider(const icu4x::DataProvider &provider, const icu4x::Locale &locale)
Definition PluralRulesWithRanges.hpp:62
icu4x::PluralCategory category_for_range(const icu4x::PluralOperands &start, const icu4x::PluralOperands &end) const
Definition PluralRulesWithRanges.hpp:68
static icu4x::diplomat::result< std::unique_ptr< icu4x::PluralRulesWithRanges >, icu4x::DataError > create_cardinal_with_provider(const icu4x::DataProvider &provider, const icu4x::Locale &locale)
Definition PluralRulesWithRanges.hpp:51
Definition diplomat_runtime.hpp:166
Definition Bidi.d.hpp:13
Definition diplomat_runtime.hpp:146
Definition diplomat_runtime.hpp:128