CalendarKind.hpp (1965B)
1 #ifndef icu4x_CalendarKind_HPP 2 #define icu4x_CalendarKind_HPP 3 4 #include "CalendarKind.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 #include "Locale.hpp" 16 17 18 namespace icu4x { 19 namespace capi { 20 extern "C" { 21 22 icu4x::capi::CalendarKind icu4x_CalendarKind_create_mv1(const icu4x::capi::Locale* locale); 23 24 } // extern "C" 25 } // namespace capi 26 } // namespace 27 28 inline icu4x::capi::CalendarKind icu4x::CalendarKind::AsFFI() const { 29 return static_cast<icu4x::capi::CalendarKind>(value); 30 } 31 32 inline icu4x::CalendarKind icu4x::CalendarKind::FromFFI(icu4x::capi::CalendarKind c_enum) { 33 switch (c_enum) { 34 case icu4x::capi::CalendarKind_Iso: 35 case icu4x::capi::CalendarKind_Gregorian: 36 case icu4x::capi::CalendarKind_Buddhist: 37 case icu4x::capi::CalendarKind_Japanese: 38 case icu4x::capi::CalendarKind_JapaneseExtended: 39 case icu4x::capi::CalendarKind_Ethiopian: 40 case icu4x::capi::CalendarKind_EthiopianAmeteAlem: 41 case icu4x::capi::CalendarKind_Indian: 42 case icu4x::capi::CalendarKind_Coptic: 43 case icu4x::capi::CalendarKind_Dangi: 44 case icu4x::capi::CalendarKind_Chinese: 45 case icu4x::capi::CalendarKind_Hebrew: 46 case icu4x::capi::CalendarKind_HijriTabularTypeIIFriday: 47 case icu4x::capi::CalendarKind_HijriSimulatedMecca: 48 case icu4x::capi::CalendarKind_HijriTabularTypeIIThursday: 49 case icu4x::capi::CalendarKind_HijriUmmAlQura: 50 case icu4x::capi::CalendarKind_Persian: 51 case icu4x::capi::CalendarKind_Roc: 52 return static_cast<icu4x::CalendarKind::Value>(c_enum); 53 default: 54 std::abort(); 55 } 56 } 57 58 inline icu4x::CalendarKind icu4x::CalendarKind::create(const icu4x::Locale& locale) { 59 auto result = icu4x::capi::icu4x_CalendarKind_create_mv1(locale.AsFFI()); 60 return icu4x::CalendarKind::FromFFI(result); 61 } 62 #endif // icu4x_CalendarKind_HPP