CanonicalCombiningClass.d.hpp (5927B)
1 #ifndef icu4x_CanonicalCombiningClass_D_HPP 2 #define icu4x_CanonicalCombiningClass_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" 13 14 namespace icu4x { 15 class CanonicalCombiningClass; 16 } 17 18 19 namespace icu4x { 20 namespace capi { 21 enum CanonicalCombiningClass { 22 CanonicalCombiningClass_NotReordered = 0, 23 CanonicalCombiningClass_Overlay = 1, 24 CanonicalCombiningClass_HanReading = 6, 25 CanonicalCombiningClass_Nukta = 7, 26 CanonicalCombiningClass_KanaVoicing = 8, 27 CanonicalCombiningClass_Virama = 9, 28 CanonicalCombiningClass_CCC10 = 10, 29 CanonicalCombiningClass_CCC11 = 11, 30 CanonicalCombiningClass_CCC12 = 12, 31 CanonicalCombiningClass_CCC13 = 13, 32 CanonicalCombiningClass_CCC14 = 14, 33 CanonicalCombiningClass_CCC15 = 15, 34 CanonicalCombiningClass_CCC16 = 16, 35 CanonicalCombiningClass_CCC17 = 17, 36 CanonicalCombiningClass_CCC18 = 18, 37 CanonicalCombiningClass_CCC19 = 19, 38 CanonicalCombiningClass_CCC20 = 20, 39 CanonicalCombiningClass_CCC21 = 21, 40 CanonicalCombiningClass_CCC22 = 22, 41 CanonicalCombiningClass_CCC23 = 23, 42 CanonicalCombiningClass_CCC24 = 24, 43 CanonicalCombiningClass_CCC25 = 25, 44 CanonicalCombiningClass_CCC26 = 26, 45 CanonicalCombiningClass_CCC27 = 27, 46 CanonicalCombiningClass_CCC28 = 28, 47 CanonicalCombiningClass_CCC29 = 29, 48 CanonicalCombiningClass_CCC30 = 30, 49 CanonicalCombiningClass_CCC31 = 31, 50 CanonicalCombiningClass_CCC32 = 32, 51 CanonicalCombiningClass_CCC33 = 33, 52 CanonicalCombiningClass_CCC34 = 34, 53 CanonicalCombiningClass_CCC35 = 35, 54 CanonicalCombiningClass_CCC36 = 36, 55 CanonicalCombiningClass_CCC84 = 84, 56 CanonicalCombiningClass_CCC91 = 91, 57 CanonicalCombiningClass_CCC103 = 103, 58 CanonicalCombiningClass_CCC107 = 107, 59 CanonicalCombiningClass_CCC118 = 118, 60 CanonicalCombiningClass_CCC122 = 122, 61 CanonicalCombiningClass_CCC129 = 129, 62 CanonicalCombiningClass_CCC130 = 130, 63 CanonicalCombiningClass_CCC132 = 132, 64 CanonicalCombiningClass_CCC133 = 133, 65 CanonicalCombiningClass_AttachedBelowLeft = 200, 66 CanonicalCombiningClass_AttachedBelow = 202, 67 CanonicalCombiningClass_AttachedAbove = 214, 68 CanonicalCombiningClass_AttachedAboveRight = 216, 69 CanonicalCombiningClass_BelowLeft = 218, 70 CanonicalCombiningClass_Below = 220, 71 CanonicalCombiningClass_BelowRight = 222, 72 CanonicalCombiningClass_Left = 224, 73 CanonicalCombiningClass_Right = 226, 74 CanonicalCombiningClass_AboveLeft = 228, 75 CanonicalCombiningClass_Above = 230, 76 CanonicalCombiningClass_AboveRight = 232, 77 CanonicalCombiningClass_DoubleBelow = 233, 78 CanonicalCombiningClass_DoubleAbove = 234, 79 CanonicalCombiningClass_IotaSubscript = 240, 80 }; 81 82 typedef struct CanonicalCombiningClass_option {union { CanonicalCombiningClass ok; }; bool is_ok; } CanonicalCombiningClass_option; 83 } // namespace capi 84 } // namespace 85 86 namespace icu4x { 87 /** 88 * See the [Rust documentation for `CanonicalCombiningClass`](https://docs.rs/icu/latest/icu/properties/props/struct.CanonicalCombiningClass.html) for more information. 89 */ 90 class CanonicalCombiningClass { 91 public: 92 enum Value { 93 NotReordered = 0, 94 Overlay = 1, 95 HanReading = 6, 96 Nukta = 7, 97 KanaVoicing = 8, 98 Virama = 9, 99 CCC10 = 10, 100 CCC11 = 11, 101 CCC12 = 12, 102 CCC13 = 13, 103 CCC14 = 14, 104 CCC15 = 15, 105 CCC16 = 16, 106 CCC17 = 17, 107 CCC18 = 18, 108 CCC19 = 19, 109 CCC20 = 20, 110 CCC21 = 21, 111 CCC22 = 22, 112 CCC23 = 23, 113 CCC24 = 24, 114 CCC25 = 25, 115 CCC26 = 26, 116 CCC27 = 27, 117 CCC28 = 28, 118 CCC29 = 29, 119 CCC30 = 30, 120 CCC31 = 31, 121 CCC32 = 32, 122 CCC33 = 33, 123 CCC34 = 34, 124 CCC35 = 35, 125 CCC36 = 36, 126 CCC84 = 84, 127 CCC91 = 91, 128 CCC103 = 103, 129 CCC107 = 107, 130 CCC118 = 118, 131 CCC122 = 122, 132 CCC129 = 129, 133 CCC130 = 130, 134 CCC132 = 132, 135 CCC133 = 133, 136 AttachedBelowLeft = 200, 137 AttachedBelow = 202, 138 AttachedAbove = 214, 139 AttachedAboveRight = 216, 140 BelowLeft = 218, 141 Below = 220, 142 BelowRight = 222, 143 Left = 224, 144 Right = 226, 145 AboveLeft = 228, 146 Above = 230, 147 AboveRight = 232, 148 DoubleBelow = 233, 149 DoubleAbove = 234, 150 IotaSubscript = 240, 151 }; 152 153 CanonicalCombiningClass() = default; 154 // Implicit conversions between enum and ::Value 155 constexpr CanonicalCombiningClass(Value v) : value(v) {} 156 constexpr operator Value() const { return value; } 157 // Prevent usage as boolean value 158 explicit operator bool() const = delete; 159 160 /** 161 * See the [Rust documentation for `for_char`](https://docs.rs/icu/latest/icu/properties/props/trait.EnumeratedProperty.html#tymethod.for_char) for more information. 162 */ 163 inline static icu4x::CanonicalCombiningClass for_char(char32_t ch); 164 165 /** 166 * Convert to an integer value usable with ICU4C and CodePointMapData 167 * 168 * See the [Rust documentation for `to_icu4c_value`](https://docs.rs/icu/latest/icu/properties/props/struct.CanonicalCombiningClass.html#method.to_icu4c_value) for more information. 169 */ 170 inline uint8_t to_integer_value() const; 171 172 /** 173 * Convert from an integer value from ICU4C or CodePointMapData 174 * 175 * See the [Rust documentation for `from_icu4c_value`](https://docs.rs/icu/latest/icu/properties/props/struct.CanonicalCombiningClass.html#method.from_icu4c_value) for more information. 176 */ 177 inline static std::optional<icu4x::CanonicalCombiningClass> from_integer_value(uint8_t other); 178 179 inline icu4x::capi::CanonicalCombiningClass AsFFI() const; 180 inline static icu4x::CanonicalCombiningClass FromFFI(icu4x::capi::CanonicalCombiningClass c_enum); 181 private: 182 Value value; 183 }; 184 185 } // namespace 186 #endif // icu4x_CanonicalCombiningClass_D_HPP