IndicSyllabicCategory.hpp (4346B)
1 #ifndef icu4x_IndicSyllabicCategory_HPP 2 #define icu4x_IndicSyllabicCategory_HPP 3 4 #include "IndicSyllabicCategory.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> 14 #include "../diplomat_runtime.hpp" 15 16 17 namespace icu4x { 18 namespace capi { 19 extern "C" { 20 21 icu4x::capi::IndicSyllabicCategory icu4x_IndicSyllabicCategory_for_char_mv1(char32_t ch); 22 23 uint8_t icu4x_IndicSyllabicCategory_to_integer_value_mv1(icu4x::capi::IndicSyllabicCategory self); 24 25 typedef struct icu4x_IndicSyllabicCategory_from_integer_value_mv1_result {union {icu4x::capi::IndicSyllabicCategory ok; }; bool is_ok;} icu4x_IndicSyllabicCategory_from_integer_value_mv1_result; 26 icu4x_IndicSyllabicCategory_from_integer_value_mv1_result icu4x_IndicSyllabicCategory_from_integer_value_mv1(uint8_t other); 27 28 } // extern "C" 29 } // namespace capi 30 } // namespace 31 32 inline icu4x::capi::IndicSyllabicCategory icu4x::IndicSyllabicCategory::AsFFI() const { 33 return static_cast<icu4x::capi::IndicSyllabicCategory>(value); 34 } 35 36 inline icu4x::IndicSyllabicCategory icu4x::IndicSyllabicCategory::FromFFI(icu4x::capi::IndicSyllabicCategory c_enum) { 37 switch (c_enum) { 38 case icu4x::capi::IndicSyllabicCategory_Other: 39 case icu4x::capi::IndicSyllabicCategory_Avagraha: 40 case icu4x::capi::IndicSyllabicCategory_Bindu: 41 case icu4x::capi::IndicSyllabicCategory_BrahmiJoiningNumber: 42 case icu4x::capi::IndicSyllabicCategory_CantillationMark: 43 case icu4x::capi::IndicSyllabicCategory_Consonant: 44 case icu4x::capi::IndicSyllabicCategory_ConsonantDead: 45 case icu4x::capi::IndicSyllabicCategory_ConsonantFinal: 46 case icu4x::capi::IndicSyllabicCategory_ConsonantHeadLetter: 47 case icu4x::capi::IndicSyllabicCategory_ConsonantInitialPostfixed: 48 case icu4x::capi::IndicSyllabicCategory_ConsonantKiller: 49 case icu4x::capi::IndicSyllabicCategory_ConsonantMedial: 50 case icu4x::capi::IndicSyllabicCategory_ConsonantPlaceholder: 51 case icu4x::capi::IndicSyllabicCategory_ConsonantPrecedingRepha: 52 case icu4x::capi::IndicSyllabicCategory_ConsonantPrefixed: 53 case icu4x::capi::IndicSyllabicCategory_ConsonantSucceedingRepha: 54 case icu4x::capi::IndicSyllabicCategory_ConsonantSubjoined: 55 case icu4x::capi::IndicSyllabicCategory_ConsonantWithStacker: 56 case icu4x::capi::IndicSyllabicCategory_GeminationMark: 57 case icu4x::capi::IndicSyllabicCategory_InvisibleStacker: 58 case icu4x::capi::IndicSyllabicCategory_Joiner: 59 case icu4x::capi::IndicSyllabicCategory_ModifyingLetter: 60 case icu4x::capi::IndicSyllabicCategory_NonJoiner: 61 case icu4x::capi::IndicSyllabicCategory_Nukta: 62 case icu4x::capi::IndicSyllabicCategory_Number: 63 case icu4x::capi::IndicSyllabicCategory_NumberJoiner: 64 case icu4x::capi::IndicSyllabicCategory_PureKiller: 65 case icu4x::capi::IndicSyllabicCategory_RegisterShifter: 66 case icu4x::capi::IndicSyllabicCategory_SyllableModifier: 67 case icu4x::capi::IndicSyllabicCategory_ToneLetter: 68 case icu4x::capi::IndicSyllabicCategory_ToneMark: 69 case icu4x::capi::IndicSyllabicCategory_Virama: 70 case icu4x::capi::IndicSyllabicCategory_Visarga: 71 case icu4x::capi::IndicSyllabicCategory_Vowel: 72 case icu4x::capi::IndicSyllabicCategory_VowelDependent: 73 case icu4x::capi::IndicSyllabicCategory_VowelIndependent: 74 case icu4x::capi::IndicSyllabicCategory_ReorderingKiller: 75 return static_cast<icu4x::IndicSyllabicCategory::Value>(c_enum); 76 default: 77 std::abort(); 78 } 79 } 80 81 inline icu4x::IndicSyllabicCategory icu4x::IndicSyllabicCategory::for_char(char32_t ch) { 82 auto result = icu4x::capi::icu4x_IndicSyllabicCategory_for_char_mv1(ch); 83 return icu4x::IndicSyllabicCategory::FromFFI(result); 84 } 85 86 inline uint8_t icu4x::IndicSyllabicCategory::to_integer_value() const { 87 auto result = icu4x::capi::icu4x_IndicSyllabicCategory_to_integer_value_mv1(this->AsFFI()); 88 return result; 89 } 90 91 inline std::optional<icu4x::IndicSyllabicCategory> icu4x::IndicSyllabicCategory::from_integer_value(uint8_t other) { 92 auto result = icu4x::capi::icu4x_IndicSyllabicCategory_from_integer_value_mv1(other); 93 return result.is_ok ? std::optional<icu4x::IndicSyllabicCategory>(icu4x::IndicSyllabicCategory::FromFFI(result.ok)) : std::nullopt; 94 } 95 #endif // icu4x_IndicSyllabicCategory_HPP