GeneralCategory.hpp (5085B)
1 #ifndef icu4x_GeneralCategory_HPP 2 #define icu4x_GeneralCategory_HPP 3 4 #include "GeneralCategory.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 #include "GeneralCategoryGroup.hpp" 16 17 18 namespace icu4x { 19 namespace capi { 20 extern "C" { 21 22 icu4x::capi::GeneralCategory icu4x_GeneralCategory_for_char_mv1(char32_t ch); 23 24 typedef struct icu4x_GeneralCategory_long_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_GeneralCategory_long_name_mv1_result; 25 icu4x_GeneralCategory_long_name_mv1_result icu4x_GeneralCategory_long_name_mv1(icu4x::capi::GeneralCategory self); 26 27 typedef struct icu4x_GeneralCategory_short_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_GeneralCategory_short_name_mv1_result; 28 icu4x_GeneralCategory_short_name_mv1_result icu4x_GeneralCategory_short_name_mv1(icu4x::capi::GeneralCategory self); 29 30 uint8_t icu4x_GeneralCategory_to_integer_value_mv1(icu4x::capi::GeneralCategory self); 31 32 icu4x::capi::GeneralCategoryGroup icu4x_GeneralCategory_to_group_mv1(icu4x::capi::GeneralCategory self); 33 34 typedef struct icu4x_GeneralCategory_from_integer_value_mv1_result {union {icu4x::capi::GeneralCategory ok; }; bool is_ok;} icu4x_GeneralCategory_from_integer_value_mv1_result; 35 icu4x_GeneralCategory_from_integer_value_mv1_result icu4x_GeneralCategory_from_integer_value_mv1(uint8_t other); 36 37 } // extern "C" 38 } // namespace capi 39 } // namespace 40 41 inline icu4x::capi::GeneralCategory icu4x::GeneralCategory::AsFFI() const { 42 return static_cast<icu4x::capi::GeneralCategory>(value); 43 } 44 45 inline icu4x::GeneralCategory icu4x::GeneralCategory::FromFFI(icu4x::capi::GeneralCategory c_enum) { 46 switch (c_enum) { 47 case icu4x::capi::GeneralCategory_Unassigned: 48 case icu4x::capi::GeneralCategory_UppercaseLetter: 49 case icu4x::capi::GeneralCategory_LowercaseLetter: 50 case icu4x::capi::GeneralCategory_TitlecaseLetter: 51 case icu4x::capi::GeneralCategory_ModifierLetter: 52 case icu4x::capi::GeneralCategory_OtherLetter: 53 case icu4x::capi::GeneralCategory_NonspacingMark: 54 case icu4x::capi::GeneralCategory_SpacingMark: 55 case icu4x::capi::GeneralCategory_EnclosingMark: 56 case icu4x::capi::GeneralCategory_DecimalNumber: 57 case icu4x::capi::GeneralCategory_LetterNumber: 58 case icu4x::capi::GeneralCategory_OtherNumber: 59 case icu4x::capi::GeneralCategory_SpaceSeparator: 60 case icu4x::capi::GeneralCategory_LineSeparator: 61 case icu4x::capi::GeneralCategory_ParagraphSeparator: 62 case icu4x::capi::GeneralCategory_Control: 63 case icu4x::capi::GeneralCategory_Format: 64 case icu4x::capi::GeneralCategory_PrivateUse: 65 case icu4x::capi::GeneralCategory_Surrogate: 66 case icu4x::capi::GeneralCategory_DashPunctuation: 67 case icu4x::capi::GeneralCategory_OpenPunctuation: 68 case icu4x::capi::GeneralCategory_ClosePunctuation: 69 case icu4x::capi::GeneralCategory_ConnectorPunctuation: 70 case icu4x::capi::GeneralCategory_InitialPunctuation: 71 case icu4x::capi::GeneralCategory_FinalPunctuation: 72 case icu4x::capi::GeneralCategory_OtherPunctuation: 73 case icu4x::capi::GeneralCategory_MathSymbol: 74 case icu4x::capi::GeneralCategory_CurrencySymbol: 75 case icu4x::capi::GeneralCategory_ModifierSymbol: 76 case icu4x::capi::GeneralCategory_OtherSymbol: 77 return static_cast<icu4x::GeneralCategory::Value>(c_enum); 78 default: 79 std::abort(); 80 } 81 } 82 83 inline icu4x::GeneralCategory icu4x::GeneralCategory::for_char(char32_t ch) { 84 auto result = icu4x::capi::icu4x_GeneralCategory_for_char_mv1(ch); 85 return icu4x::GeneralCategory::FromFFI(result); 86 } 87 88 inline std::optional<std::string_view> icu4x::GeneralCategory::long_name() const { 89 auto result = icu4x::capi::icu4x_GeneralCategory_long_name_mv1(this->AsFFI()); 90 return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt; 91 } 92 93 inline std::optional<std::string_view> icu4x::GeneralCategory::short_name() const { 94 auto result = icu4x::capi::icu4x_GeneralCategory_short_name_mv1(this->AsFFI()); 95 return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt; 96 } 97 98 inline uint8_t icu4x::GeneralCategory::to_integer_value() const { 99 auto result = icu4x::capi::icu4x_GeneralCategory_to_integer_value_mv1(this->AsFFI()); 100 return result; 101 } 102 103 inline icu4x::GeneralCategoryGroup icu4x::GeneralCategory::to_group() const { 104 auto result = icu4x::capi::icu4x_GeneralCategory_to_group_mv1(this->AsFFI()); 105 return icu4x::GeneralCategoryGroup::FromFFI(result); 106 } 107 108 inline std::optional<icu4x::GeneralCategory> icu4x::GeneralCategory::from_integer_value(uint8_t other) { 109 auto result = icu4x::capi::icu4x_GeneralCategory_from_integer_value_mv1(other); 110 return result.is_ok ? std::optional<icu4x::GeneralCategory>(icu4x::GeneralCategory::FromFFI(result.ok)) : std::nullopt; 111 } 112 #endif // icu4x_GeneralCategory_HPP