1 #ifndef icu4x_LineBreakOptionsV2_D_HPP 2 #define icu4x_LineBreakOptionsV2_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 "LineBreakStrictness.d.hpp" 13 #include "LineBreakWordOption.d.hpp" 14 15 namespace icu4x { 16 class LineBreakStrictness; 17 class LineBreakWordOption; 18 } 19 20 21 namespace icu4x { 22 namespace capi { 23 struct LineBreakOptionsV2 { 24 icu4x::capi::LineBreakStrictness_option strictness; 25 icu4x::capi::LineBreakWordOption_option word_option; 26 }; 27 28 typedef struct LineBreakOptionsV2_option {union { LineBreakOptionsV2 ok; }; bool is_ok; } LineBreakOptionsV2_option; 29 } // namespace capi 30 } // namespace 31 32 33 namespace icu4x { 34 struct LineBreakOptionsV2 { 35 std::optional<icu4x::LineBreakStrictness> strictness; 36 std::optional<icu4x::LineBreakWordOption> word_option; 37 38 inline icu4x::capi::LineBreakOptionsV2 AsFFI() const; 39 inline static icu4x::LineBreakOptionsV2 FromFFI(icu4x::capi::LineBreakOptionsV2 c_struct); 40 }; 41 42 } // namespace 43 #endif // icu4x_LineBreakOptionsV2_D_HPP 44