ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
PluralCategory.d.hpp
Go to the documentation of this file.
1#ifndef ICU4X_PluralCategory_D_HPP
2#define ICU4X_PluralCategory_D_HPP
3
4#include <stdio.h>
5#include <stdint.h>
6#include <stddef.h>
7#include <stdbool.h>
8#include <memory>
9#include <functional>
10#include <optional>
11#include <cstdlib>
12#include "diplomat_runtime.hpp"
13namespace icu4x {
14class PluralCategory;
15} // namespace icu4x
16
17
18
19namespace icu4x {
20namespace capi {
21 enum PluralCategory {
22 PluralCategory_Zero = 0,
23 PluralCategory_One = 1,
24 PluralCategory_Two = 2,
25 PluralCategory_Few = 3,
26 PluralCategory_Many = 4,
27 PluralCategory_Other = 5,
28 };
29
30 typedef struct PluralCategory_option {union { PluralCategory ok; }; bool is_ok; } PluralCategory_option;
31} // namespace capi
32} // namespace
33
34namespace icu4x {
39public:
40 enum Value {
41 Zero = 0,
42 One = 1,
43 Two = 2,
44 Few = 3,
45 Many = 4,
46 Other = 5,
47 };
48
50
51 // Implicit conversions between enum and ::Value
52 constexpr PluralCategory(Value v) : value(v) {}
53 constexpr operator Value() const { return value; }
54 // Prevent usage as boolean value
55 explicit operator bool() const = delete;
56
65 inline static std::optional<icu4x::PluralCategory> get_for_cldr_string(std::string_view s);
66
67 inline icu4x::capi::PluralCategory AsFFI() const;
68 inline static icu4x::PluralCategory FromFFI(icu4x::capi::PluralCategory c_enum);
69private:
70 Value value;
71};
72
73} // namespace
74#endif // ICU4X_PluralCategory_D_HPP
Definition PluralCategory.d.hpp:38
constexpr PluralCategory(Value v)
Definition PluralCategory.d.hpp:52
static std::optional< icu4x::PluralCategory > get_for_cldr_string(std::string_view s)
Definition PluralCategory.hpp:46
Value
Definition PluralCategory.d.hpp:40
@ Other
Definition PluralCategory.d.hpp:46
@ Two
Definition PluralCategory.d.hpp:43
@ Zero
Definition PluralCategory.d.hpp:41
@ Few
Definition PluralCategory.d.hpp:44
@ One
Definition PluralCategory.d.hpp:42
@ Many
Definition PluralCategory.d.hpp:45
PluralCategory()
Definition PluralCategory.d.hpp:49
Definition Bidi.d.hpp:13