1 #ifndef icu4x_CollatorOptionsV1_D_HPP 2 #define icu4x_CollatorOptionsV1_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 "CollatorAlternateHandling.d.hpp" 13 #include "CollatorBackwardSecondLevel.d.hpp" 14 #include "CollatorCaseLevel.d.hpp" 15 #include "CollatorMaxVariable.d.hpp" 16 #include "CollatorStrength.d.hpp" 17 18 namespace icu4x { 19 class CollatorAlternateHandling; 20 class CollatorBackwardSecondLevel; 21 class CollatorCaseLevel; 22 class CollatorMaxVariable; 23 class CollatorStrength; 24 } 25 26 27 namespace icu4x { 28 namespace capi { 29 struct CollatorOptionsV1 { 30 icu4x::capi::CollatorStrength_option strength; 31 icu4x::capi::CollatorAlternateHandling_option alternate_handling; 32 icu4x::capi::CollatorMaxVariable_option max_variable; 33 icu4x::capi::CollatorCaseLevel_option case_level; 34 icu4x::capi::CollatorBackwardSecondLevel_option backward_second_level; 35 }; 36 37 typedef struct CollatorOptionsV1_option {union { CollatorOptionsV1 ok; }; bool is_ok; } CollatorOptionsV1_option; 38 } // namespace capi 39 } // namespace 40 41 42 namespace icu4x { 43 struct CollatorOptionsV1 { 44 std::optional<icu4x::CollatorStrength> strength; 45 std::optional<icu4x::CollatorAlternateHandling> alternate_handling; 46 std::optional<icu4x::CollatorMaxVariable> max_variable; 47 std::optional<icu4x::CollatorCaseLevel> case_level; 48 std::optional<icu4x::CollatorBackwardSecondLevel> backward_second_level; 49 50 inline icu4x::capi::CollatorOptionsV1 AsFFI() const; 51 inline static icu4x::CollatorOptionsV1 FromFFI(icu4x::capi::CollatorOptionsV1 c_struct); 52 }; 53 54 } // namespace 55 #endif // icu4x_CollatorOptionsV1_D_HPP 56