1 #ifndef icu4x_BidiMirroringGlyph_D_HPP 2 #define icu4x_BidiMirroringGlyph_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 "../diplomat_runtime.hpp" 12 #include "BidiPairedBracketType.d.hpp" 13 14 namespace icu4x { 15 struct BidiMirroringGlyph; 16 class BidiPairedBracketType; 17 } 18 19 20 namespace icu4x { 21 namespace capi { 22 struct BidiMirroringGlyph { 23 diplomat::capi::OptionChar mirroring_glyph; 24 bool mirrored; 25 icu4x::capi::BidiPairedBracketType paired_bracket_type; 26 }; 27 28 typedef struct BidiMirroringGlyph_option {union { BidiMirroringGlyph ok; }; bool is_ok; } BidiMirroringGlyph_option; 29 } // namespace capi 30 } // namespace 31 32 33 namespace icu4x { 34 struct BidiMirroringGlyph { 35 std::optional<char32_t> mirroring_glyph; 36 bool mirrored; 37 icu4x::BidiPairedBracketType paired_bracket_type; 38 39 inline static icu4x::BidiMirroringGlyph for_char(char32_t ch); 40 41 inline icu4x::capi::BidiMirroringGlyph AsFFI() const; 42 inline static icu4x::BidiMirroringGlyph FromFFI(icu4x::capi::BidiMirroringGlyph c_struct); 43 }; 44 45 } // namespace 46 #endif // icu4x_BidiMirroringGlyph_D_HPP 47