BidiDirection.d.hpp (1149B)
1 #ifndef icu4x_BidiDirection_D_HPP 2 #define icu4x_BidiDirection_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 15 namespace icu4x { 16 namespace capi { 17 enum BidiDirection { 18 BidiDirection_Ltr = 0, 19 BidiDirection_Rtl = 1, 20 BidiDirection_Mixed = 2, 21 }; 22 23 typedef struct BidiDirection_option {union { BidiDirection ok; }; bool is_ok; } BidiDirection_option; 24 } // namespace capi 25 } // namespace 26 27 namespace icu4x { 28 class BidiDirection { 29 public: 30 enum Value { 31 Ltr = 0, 32 Rtl = 1, 33 Mixed = 2, 34 }; 35 36 BidiDirection() = default; 37 // Implicit conversions between enum and ::Value 38 constexpr BidiDirection(Value v) : value(v) {} 39 constexpr operator Value() const { return value; } 40 // Prevent usage as boolean value 41 explicit operator bool() const = delete; 42 43 inline icu4x::capi::BidiDirection AsFFI() const; 44 inline static icu4x::BidiDirection FromFFI(icu4x::capi::BidiDirection c_enum); 45 private: 46 Value value; 47 }; 48 49 } // namespace 50 #endif // icu4x_BidiDirection_D_HPP