GraphemeClusterBreak.hpp (3034B)
1 #ifndef icu4x_GraphemeClusterBreak_HPP 2 #define icu4x_GraphemeClusterBreak_HPP 3 4 #include "GraphemeClusterBreak.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::GraphemeClusterBreak icu4x_GraphemeClusterBreak_for_char_mv1(char32_t ch); 22 23 uint8_t icu4x_GraphemeClusterBreak_to_integer_value_mv1(icu4x::capi::GraphemeClusterBreak self); 24 25 typedef struct icu4x_GraphemeClusterBreak_from_integer_value_mv1_result {union {icu4x::capi::GraphemeClusterBreak ok; }; bool is_ok;} icu4x_GraphemeClusterBreak_from_integer_value_mv1_result; 26 icu4x_GraphemeClusterBreak_from_integer_value_mv1_result icu4x_GraphemeClusterBreak_from_integer_value_mv1(uint8_t other); 27 28 } // extern "C" 29 } // namespace capi 30 } // namespace 31 32 inline icu4x::capi::GraphemeClusterBreak icu4x::GraphemeClusterBreak::AsFFI() const { 33 return static_cast<icu4x::capi::GraphemeClusterBreak>(value); 34 } 35 36 inline icu4x::GraphemeClusterBreak icu4x::GraphemeClusterBreak::FromFFI(icu4x::capi::GraphemeClusterBreak c_enum) { 37 switch (c_enum) { 38 case icu4x::capi::GraphemeClusterBreak_Other: 39 case icu4x::capi::GraphemeClusterBreak_Control: 40 case icu4x::capi::GraphemeClusterBreak_CR: 41 case icu4x::capi::GraphemeClusterBreak_Extend: 42 case icu4x::capi::GraphemeClusterBreak_L: 43 case icu4x::capi::GraphemeClusterBreak_LF: 44 case icu4x::capi::GraphemeClusterBreak_LV: 45 case icu4x::capi::GraphemeClusterBreak_LVT: 46 case icu4x::capi::GraphemeClusterBreak_T: 47 case icu4x::capi::GraphemeClusterBreak_V: 48 case icu4x::capi::GraphemeClusterBreak_SpacingMark: 49 case icu4x::capi::GraphemeClusterBreak_Prepend: 50 case icu4x::capi::GraphemeClusterBreak_RegionalIndicator: 51 case icu4x::capi::GraphemeClusterBreak_EBase: 52 case icu4x::capi::GraphemeClusterBreak_EBaseGAZ: 53 case icu4x::capi::GraphemeClusterBreak_EModifier: 54 case icu4x::capi::GraphemeClusterBreak_GlueAfterZwj: 55 case icu4x::capi::GraphemeClusterBreak_ZWJ: 56 return static_cast<icu4x::GraphemeClusterBreak::Value>(c_enum); 57 default: 58 std::abort(); 59 } 60 } 61 62 inline icu4x::GraphemeClusterBreak icu4x::GraphemeClusterBreak::for_char(char32_t ch) { 63 auto result = icu4x::capi::icu4x_GraphemeClusterBreak_for_char_mv1(ch); 64 return icu4x::GraphemeClusterBreak::FromFFI(result); 65 } 66 67 inline uint8_t icu4x::GraphemeClusterBreak::to_integer_value() const { 68 auto result = icu4x::capi::icu4x_GraphemeClusterBreak_to_integer_value_mv1(this->AsFFI()); 69 return result; 70 } 71 72 inline std::optional<icu4x::GraphemeClusterBreak> icu4x::GraphemeClusterBreak::from_integer_value(uint8_t other) { 73 auto result = icu4x::capi::icu4x_GraphemeClusterBreak_from_integer_value_mv1(other); 74 return result.is_ok ? std::optional<icu4x::GraphemeClusterBreak>(icu4x::GraphemeClusterBreak::FromFFI(result.ok)) : std::nullopt; 75 } 76 #endif // icu4x_GraphemeClusterBreak_HPP