ZonedDateFormatter.hpp (24313B)
1 #ifndef icu4x_ZonedDateFormatter_HPP 2 #define icu4x_ZonedDateFormatter_HPP 3 4 #include "ZonedDateFormatter.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 "DataProvider.hpp" 16 #include "DateFormatter.hpp" 17 #include "DateTimeFormatterLoadError.hpp" 18 #include "DateTimeWriteError.hpp" 19 #include "IsoDate.hpp" 20 #include "Locale.hpp" 21 #include "TimeZoneInfo.hpp" 22 23 24 namespace icu4x { 25 namespace capi { 26 extern "C" { 27 28 typedef struct icu4x_ZonedDateFormatter_create_specific_long_mv1_result {union {icu4x::capi::ZonedDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateFormatter_create_specific_long_mv1_result; 29 icu4x_ZonedDateFormatter_create_specific_long_mv1_result icu4x_ZonedDateFormatter_create_specific_long_mv1(const icu4x::capi::Locale* locale, const icu4x::capi::DateFormatter* formatter); 30 31 typedef struct icu4x_ZonedDateFormatter_create_specific_long_with_provider_mv1_result {union {icu4x::capi::ZonedDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateFormatter_create_specific_long_with_provider_mv1_result; 32 icu4x_ZonedDateFormatter_create_specific_long_with_provider_mv1_result icu4x_ZonedDateFormatter_create_specific_long_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, const icu4x::capi::DateFormatter* formatter); 33 34 typedef struct icu4x_ZonedDateFormatter_create_specific_short_mv1_result {union {icu4x::capi::ZonedDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateFormatter_create_specific_short_mv1_result; 35 icu4x_ZonedDateFormatter_create_specific_short_mv1_result icu4x_ZonedDateFormatter_create_specific_short_mv1(const icu4x::capi::Locale* locale, const icu4x::capi::DateFormatter* formatter); 36 37 typedef struct icu4x_ZonedDateFormatter_create_specific_short_with_provider_mv1_result {union {icu4x::capi::ZonedDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateFormatter_create_specific_short_with_provider_mv1_result; 38 icu4x_ZonedDateFormatter_create_specific_short_with_provider_mv1_result icu4x_ZonedDateFormatter_create_specific_short_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, const icu4x::capi::DateFormatter* formatter); 39 40 typedef struct icu4x_ZonedDateFormatter_create_localized_offset_long_mv1_result {union {icu4x::capi::ZonedDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateFormatter_create_localized_offset_long_mv1_result; 41 icu4x_ZonedDateFormatter_create_localized_offset_long_mv1_result icu4x_ZonedDateFormatter_create_localized_offset_long_mv1(const icu4x::capi::Locale* locale, const icu4x::capi::DateFormatter* formatter); 42 43 typedef struct icu4x_ZonedDateFormatter_create_localized_offset_long_with_provider_mv1_result {union {icu4x::capi::ZonedDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateFormatter_create_localized_offset_long_with_provider_mv1_result; 44 icu4x_ZonedDateFormatter_create_localized_offset_long_with_provider_mv1_result icu4x_ZonedDateFormatter_create_localized_offset_long_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, const icu4x::capi::DateFormatter* formatter); 45 46 typedef struct icu4x_ZonedDateFormatter_create_localized_offset_short_mv1_result {union {icu4x::capi::ZonedDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateFormatter_create_localized_offset_short_mv1_result; 47 icu4x_ZonedDateFormatter_create_localized_offset_short_mv1_result icu4x_ZonedDateFormatter_create_localized_offset_short_mv1(const icu4x::capi::Locale* locale, const icu4x::capi::DateFormatter* formatter); 48 49 typedef struct icu4x_ZonedDateFormatter_create_localized_offset_short_with_provider_mv1_result {union {icu4x::capi::ZonedDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateFormatter_create_localized_offset_short_with_provider_mv1_result; 50 icu4x_ZonedDateFormatter_create_localized_offset_short_with_provider_mv1_result icu4x_ZonedDateFormatter_create_localized_offset_short_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, const icu4x::capi::DateFormatter* formatter); 51 52 typedef struct icu4x_ZonedDateFormatter_create_generic_long_mv1_result {union {icu4x::capi::ZonedDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateFormatter_create_generic_long_mv1_result; 53 icu4x_ZonedDateFormatter_create_generic_long_mv1_result icu4x_ZonedDateFormatter_create_generic_long_mv1(const icu4x::capi::Locale* locale, const icu4x::capi::DateFormatter* formatter); 54 55 typedef struct icu4x_ZonedDateFormatter_create_generic_long_with_provider_mv1_result {union {icu4x::capi::ZonedDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateFormatter_create_generic_long_with_provider_mv1_result; 56 icu4x_ZonedDateFormatter_create_generic_long_with_provider_mv1_result icu4x_ZonedDateFormatter_create_generic_long_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, const icu4x::capi::DateFormatter* formatter); 57 58 typedef struct icu4x_ZonedDateFormatter_create_generic_short_mv1_result {union {icu4x::capi::ZonedDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateFormatter_create_generic_short_mv1_result; 59 icu4x_ZonedDateFormatter_create_generic_short_mv1_result icu4x_ZonedDateFormatter_create_generic_short_mv1(const icu4x::capi::Locale* locale, const icu4x::capi::DateFormatter* formatter); 60 61 typedef struct icu4x_ZonedDateFormatter_create_generic_short_with_provider_mv1_result {union {icu4x::capi::ZonedDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateFormatter_create_generic_short_with_provider_mv1_result; 62 icu4x_ZonedDateFormatter_create_generic_short_with_provider_mv1_result icu4x_ZonedDateFormatter_create_generic_short_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, const icu4x::capi::DateFormatter* formatter); 63 64 typedef struct icu4x_ZonedDateFormatter_create_location_mv1_result {union {icu4x::capi::ZonedDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateFormatter_create_location_mv1_result; 65 icu4x_ZonedDateFormatter_create_location_mv1_result icu4x_ZonedDateFormatter_create_location_mv1(const icu4x::capi::Locale* locale, const icu4x::capi::DateFormatter* formatter); 66 67 typedef struct icu4x_ZonedDateFormatter_create_location_with_provider_mv1_result {union {icu4x::capi::ZonedDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateFormatter_create_location_with_provider_mv1_result; 68 icu4x_ZonedDateFormatter_create_location_with_provider_mv1_result icu4x_ZonedDateFormatter_create_location_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, const icu4x::capi::DateFormatter* formatter); 69 70 typedef struct icu4x_ZonedDateFormatter_create_exemplar_city_mv1_result {union {icu4x::capi::ZonedDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateFormatter_create_exemplar_city_mv1_result; 71 icu4x_ZonedDateFormatter_create_exemplar_city_mv1_result icu4x_ZonedDateFormatter_create_exemplar_city_mv1(const icu4x::capi::Locale* locale, const icu4x::capi::DateFormatter* formatter); 72 73 typedef struct icu4x_ZonedDateFormatter_create_exemplar_city_with_provider_mv1_result {union {icu4x::capi::ZonedDateFormatter* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_ZonedDateFormatter_create_exemplar_city_with_provider_mv1_result; 74 icu4x_ZonedDateFormatter_create_exemplar_city_with_provider_mv1_result icu4x_ZonedDateFormatter_create_exemplar_city_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, const icu4x::capi::DateFormatter* formatter); 75 76 typedef struct icu4x_ZonedDateFormatter_format_iso_mv1_result {union { icu4x::capi::DateTimeWriteError err;}; bool is_ok;} icu4x_ZonedDateFormatter_format_iso_mv1_result; 77 icu4x_ZonedDateFormatter_format_iso_mv1_result icu4x_ZonedDateFormatter_format_iso_mv1(const icu4x::capi::ZonedDateFormatter* self, const icu4x::capi::IsoDate* date, const icu4x::capi::TimeZoneInfo* zone, diplomat::capi::DiplomatWrite* write); 78 79 void icu4x_ZonedDateFormatter_destroy_mv1(ZonedDateFormatter* self); 80 81 } // extern "C" 82 } // namespace capi 83 } // namespace 84 85 inline diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateFormatter::create_specific_long(const icu4x::Locale& locale, const icu4x::DateFormatter& formatter) { 86 auto result = icu4x::capi::icu4x_ZonedDateFormatter_create_specific_long_mv1(locale.AsFFI(), 87 formatter.AsFFI()); 88 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateFormatter>>(std::unique_ptr<icu4x::ZonedDateFormatter>(icu4x::ZonedDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 89 } 90 91 inline diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateFormatter::create_specific_long_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, const icu4x::DateFormatter& formatter) { 92 auto result = icu4x::capi::icu4x_ZonedDateFormatter_create_specific_long_with_provider_mv1(provider.AsFFI(), 93 locale.AsFFI(), 94 formatter.AsFFI()); 95 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateFormatter>>(std::unique_ptr<icu4x::ZonedDateFormatter>(icu4x::ZonedDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 96 } 97 98 inline diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateFormatter::create_specific_short(const icu4x::Locale& locale, const icu4x::DateFormatter& formatter) { 99 auto result = icu4x::capi::icu4x_ZonedDateFormatter_create_specific_short_mv1(locale.AsFFI(), 100 formatter.AsFFI()); 101 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateFormatter>>(std::unique_ptr<icu4x::ZonedDateFormatter>(icu4x::ZonedDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 102 } 103 104 inline diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateFormatter::create_specific_short_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, const icu4x::DateFormatter& formatter) { 105 auto result = icu4x::capi::icu4x_ZonedDateFormatter_create_specific_short_with_provider_mv1(provider.AsFFI(), 106 locale.AsFFI(), 107 formatter.AsFFI()); 108 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateFormatter>>(std::unique_ptr<icu4x::ZonedDateFormatter>(icu4x::ZonedDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 109 } 110 111 inline diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateFormatter::create_localized_offset_long(const icu4x::Locale& locale, const icu4x::DateFormatter& formatter) { 112 auto result = icu4x::capi::icu4x_ZonedDateFormatter_create_localized_offset_long_mv1(locale.AsFFI(), 113 formatter.AsFFI()); 114 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateFormatter>>(std::unique_ptr<icu4x::ZonedDateFormatter>(icu4x::ZonedDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 115 } 116 117 inline diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateFormatter::create_localized_offset_long_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, const icu4x::DateFormatter& formatter) { 118 auto result = icu4x::capi::icu4x_ZonedDateFormatter_create_localized_offset_long_with_provider_mv1(provider.AsFFI(), 119 locale.AsFFI(), 120 formatter.AsFFI()); 121 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateFormatter>>(std::unique_ptr<icu4x::ZonedDateFormatter>(icu4x::ZonedDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 122 } 123 124 inline diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateFormatter::create_localized_offset_short(const icu4x::Locale& locale, const icu4x::DateFormatter& formatter) { 125 auto result = icu4x::capi::icu4x_ZonedDateFormatter_create_localized_offset_short_mv1(locale.AsFFI(), 126 formatter.AsFFI()); 127 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateFormatter>>(std::unique_ptr<icu4x::ZonedDateFormatter>(icu4x::ZonedDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 128 } 129 130 inline diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateFormatter::create_localized_offset_short_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, const icu4x::DateFormatter& formatter) { 131 auto result = icu4x::capi::icu4x_ZonedDateFormatter_create_localized_offset_short_with_provider_mv1(provider.AsFFI(), 132 locale.AsFFI(), 133 formatter.AsFFI()); 134 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateFormatter>>(std::unique_ptr<icu4x::ZonedDateFormatter>(icu4x::ZonedDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 135 } 136 137 inline diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateFormatter::create_generic_long(const icu4x::Locale& locale, const icu4x::DateFormatter& formatter) { 138 auto result = icu4x::capi::icu4x_ZonedDateFormatter_create_generic_long_mv1(locale.AsFFI(), 139 formatter.AsFFI()); 140 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateFormatter>>(std::unique_ptr<icu4x::ZonedDateFormatter>(icu4x::ZonedDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 141 } 142 143 inline diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateFormatter::create_generic_long_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, const icu4x::DateFormatter& formatter) { 144 auto result = icu4x::capi::icu4x_ZonedDateFormatter_create_generic_long_with_provider_mv1(provider.AsFFI(), 145 locale.AsFFI(), 146 formatter.AsFFI()); 147 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateFormatter>>(std::unique_ptr<icu4x::ZonedDateFormatter>(icu4x::ZonedDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 148 } 149 150 inline diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateFormatter::create_generic_short(const icu4x::Locale& locale, const icu4x::DateFormatter& formatter) { 151 auto result = icu4x::capi::icu4x_ZonedDateFormatter_create_generic_short_mv1(locale.AsFFI(), 152 formatter.AsFFI()); 153 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateFormatter>>(std::unique_ptr<icu4x::ZonedDateFormatter>(icu4x::ZonedDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 154 } 155 156 inline diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateFormatter::create_generic_short_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, const icu4x::DateFormatter& formatter) { 157 auto result = icu4x::capi::icu4x_ZonedDateFormatter_create_generic_short_with_provider_mv1(provider.AsFFI(), 158 locale.AsFFI(), 159 formatter.AsFFI()); 160 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateFormatter>>(std::unique_ptr<icu4x::ZonedDateFormatter>(icu4x::ZonedDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 161 } 162 163 inline diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateFormatter::create_location(const icu4x::Locale& locale, const icu4x::DateFormatter& formatter) { 164 auto result = icu4x::capi::icu4x_ZonedDateFormatter_create_location_mv1(locale.AsFFI(), 165 formatter.AsFFI()); 166 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateFormatter>>(std::unique_ptr<icu4x::ZonedDateFormatter>(icu4x::ZonedDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 167 } 168 169 inline diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateFormatter::create_location_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, const icu4x::DateFormatter& formatter) { 170 auto result = icu4x::capi::icu4x_ZonedDateFormatter_create_location_with_provider_mv1(provider.AsFFI(), 171 locale.AsFFI(), 172 formatter.AsFFI()); 173 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateFormatter>>(std::unique_ptr<icu4x::ZonedDateFormatter>(icu4x::ZonedDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 174 } 175 176 inline diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateFormatter::create_exemplar_city(const icu4x::Locale& locale, const icu4x::DateFormatter& formatter) { 177 auto result = icu4x::capi::icu4x_ZonedDateFormatter_create_exemplar_city_mv1(locale.AsFFI(), 178 formatter.AsFFI()); 179 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateFormatter>>(std::unique_ptr<icu4x::ZonedDateFormatter>(icu4x::ZonedDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 180 } 181 182 inline diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError> icu4x::ZonedDateFormatter::create_exemplar_city_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, const icu4x::DateFormatter& formatter) { 183 auto result = icu4x::capi::icu4x_ZonedDateFormatter_create_exemplar_city_with_provider_mv1(provider.AsFFI(), 184 locale.AsFFI(), 185 formatter.AsFFI()); 186 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::ZonedDateFormatter>>(std::unique_ptr<icu4x::ZonedDateFormatter>(icu4x::ZonedDateFormatter::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::ZonedDateFormatter>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 187 } 188 189 inline diplomat::result<std::string, icu4x::DateTimeWriteError> icu4x::ZonedDateFormatter::format_iso(const icu4x::IsoDate& date, const icu4x::TimeZoneInfo& zone) const { 190 std::string output; 191 diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); 192 auto result = icu4x::capi::icu4x_ZonedDateFormatter_format_iso_mv1(this->AsFFI(), 193 date.AsFFI(), 194 zone.AsFFI(), 195 &write); 196 return result.is_ok ? diplomat::result<std::string, icu4x::DateTimeWriteError>(diplomat::Ok<std::string>(std::move(output))) : diplomat::result<std::string, icu4x::DateTimeWriteError>(diplomat::Err<icu4x::DateTimeWriteError>(icu4x::DateTimeWriteError::FromFFI(result.err))); 197 } 198 199 inline const icu4x::capi::ZonedDateFormatter* icu4x::ZonedDateFormatter::AsFFI() const { 200 return reinterpret_cast<const icu4x::capi::ZonedDateFormatter*>(this); 201 } 202 203 inline icu4x::capi::ZonedDateFormatter* icu4x::ZonedDateFormatter::AsFFI() { 204 return reinterpret_cast<icu4x::capi::ZonedDateFormatter*>(this); 205 } 206 207 inline const icu4x::ZonedDateFormatter* icu4x::ZonedDateFormatter::FromFFI(const icu4x::capi::ZonedDateFormatter* ptr) { 208 return reinterpret_cast<const icu4x::ZonedDateFormatter*>(ptr); 209 } 210 211 inline icu4x::ZonedDateFormatter* icu4x::ZonedDateFormatter::FromFFI(icu4x::capi::ZonedDateFormatter* ptr) { 212 return reinterpret_cast<icu4x::ZonedDateFormatter*>(ptr); 213 } 214 215 inline void icu4x::ZonedDateFormatter::operator delete(void* ptr) { 216 icu4x::capi::icu4x_ZonedDateFormatter_destroy_mv1(reinterpret_cast<icu4x::capi::ZonedDateFormatter*>(ptr)); 217 } 218 219 220 #endif // icu4x_ZonedDateFormatter_HPP