DateFormatterGregorian.hpp (37990B)
1 #ifndef icu4x_DateFormatterGregorian_HPP 2 #define icu4x_DateFormatterGregorian_HPP 3 4 #include "DateFormatterGregorian.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 "DateTimeAlignment.hpp" 17 #include "DateTimeFormatterLoadError.hpp" 18 #include "DateTimeLength.hpp" 19 #include "IsoDate.hpp" 20 #include "Locale.hpp" 21 #include "YearStyle.hpp" 22 23 24 namespace icu4x { 25 namespace capi { 26 extern "C" { 27 28 typedef struct icu4x_DateFormatterGregorian_create_d_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_d_mv1_result; 29 icu4x_DateFormatterGregorian_create_d_mv1_result icu4x_DateFormatterGregorian_create_d_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment); 30 31 typedef struct icu4x_DateFormatterGregorian_create_d_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_d_with_provider_mv1_result; 32 icu4x_DateFormatterGregorian_create_d_with_provider_mv1_result icu4x_DateFormatterGregorian_create_d_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment); 33 34 typedef struct icu4x_DateFormatterGregorian_create_md_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_md_mv1_result; 35 icu4x_DateFormatterGregorian_create_md_mv1_result icu4x_DateFormatterGregorian_create_md_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment); 36 37 typedef struct icu4x_DateFormatterGregorian_create_md_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_md_with_provider_mv1_result; 38 icu4x_DateFormatterGregorian_create_md_with_provider_mv1_result icu4x_DateFormatterGregorian_create_md_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment); 39 40 typedef struct icu4x_DateFormatterGregorian_create_ymd_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_ymd_mv1_result; 41 icu4x_DateFormatterGregorian_create_ymd_mv1_result icu4x_DateFormatterGregorian_create_ymd_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style); 42 43 typedef struct icu4x_DateFormatterGregorian_create_ymd_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_ymd_with_provider_mv1_result; 44 icu4x_DateFormatterGregorian_create_ymd_with_provider_mv1_result icu4x_DateFormatterGregorian_create_ymd_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style); 45 46 typedef struct icu4x_DateFormatterGregorian_create_de_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_de_mv1_result; 47 icu4x_DateFormatterGregorian_create_de_mv1_result icu4x_DateFormatterGregorian_create_de_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment); 48 49 typedef struct icu4x_DateFormatterGregorian_create_de_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_de_with_provider_mv1_result; 50 icu4x_DateFormatterGregorian_create_de_with_provider_mv1_result icu4x_DateFormatterGregorian_create_de_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment); 51 52 typedef struct icu4x_DateFormatterGregorian_create_mde_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_mde_mv1_result; 53 icu4x_DateFormatterGregorian_create_mde_mv1_result icu4x_DateFormatterGregorian_create_mde_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment); 54 55 typedef struct icu4x_DateFormatterGregorian_create_mde_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_mde_with_provider_mv1_result; 56 icu4x_DateFormatterGregorian_create_mde_with_provider_mv1_result icu4x_DateFormatterGregorian_create_mde_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment); 57 58 typedef struct icu4x_DateFormatterGregorian_create_ymde_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_ymde_mv1_result; 59 icu4x_DateFormatterGregorian_create_ymde_mv1_result icu4x_DateFormatterGregorian_create_ymde_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style); 60 61 typedef struct icu4x_DateFormatterGregorian_create_ymde_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_ymde_with_provider_mv1_result; 62 icu4x_DateFormatterGregorian_create_ymde_with_provider_mv1_result icu4x_DateFormatterGregorian_create_ymde_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style); 63 64 typedef struct icu4x_DateFormatterGregorian_create_e_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_e_mv1_result; 65 icu4x_DateFormatterGregorian_create_e_mv1_result icu4x_DateFormatterGregorian_create_e_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length); 66 67 typedef struct icu4x_DateFormatterGregorian_create_e_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_e_with_provider_mv1_result; 68 icu4x_DateFormatterGregorian_create_e_with_provider_mv1_result icu4x_DateFormatterGregorian_create_e_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length); 69 70 typedef struct icu4x_DateFormatterGregorian_create_m_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_m_mv1_result; 71 icu4x_DateFormatterGregorian_create_m_mv1_result icu4x_DateFormatterGregorian_create_m_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment); 72 73 typedef struct icu4x_DateFormatterGregorian_create_m_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_m_with_provider_mv1_result; 74 icu4x_DateFormatterGregorian_create_m_with_provider_mv1_result icu4x_DateFormatterGregorian_create_m_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment); 75 76 typedef struct icu4x_DateFormatterGregorian_create_ym_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_ym_mv1_result; 77 icu4x_DateFormatterGregorian_create_ym_mv1_result icu4x_DateFormatterGregorian_create_ym_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style); 78 79 typedef struct icu4x_DateFormatterGregorian_create_ym_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_ym_with_provider_mv1_result; 80 icu4x_DateFormatterGregorian_create_ym_with_provider_mv1_result icu4x_DateFormatterGregorian_create_ym_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style); 81 82 typedef struct icu4x_DateFormatterGregorian_create_y_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_y_mv1_result; 83 icu4x_DateFormatterGregorian_create_y_mv1_result icu4x_DateFormatterGregorian_create_y_mv1(const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style); 84 85 typedef struct icu4x_DateFormatterGregorian_create_y_with_provider_mv1_result {union {icu4x::capi::DateFormatterGregorian* ok; icu4x::capi::DateTimeFormatterLoadError err;}; bool is_ok;} icu4x_DateFormatterGregorian_create_y_with_provider_mv1_result; 86 icu4x_DateFormatterGregorian_create_y_with_provider_mv1_result icu4x_DateFormatterGregorian_create_y_with_provider_mv1(const icu4x::capi::DataProvider* provider, const icu4x::capi::Locale* locale, icu4x::capi::DateTimeLength_option length, icu4x::capi::DateTimeAlignment_option alignment, icu4x::capi::YearStyle_option year_style); 87 88 void icu4x_DateFormatterGregorian_format_iso_mv1(const icu4x::capi::DateFormatterGregorian* self, const icu4x::capi::IsoDate* date, diplomat::capi::DiplomatWrite* write); 89 90 void icu4x_DateFormatterGregorian_destroy_mv1(DateFormatterGregorian* self); 91 92 } // extern "C" 93 } // namespace capi 94 } // namespace 95 96 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_d(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) { 97 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_d_mv1(locale.AsFFI(), 98 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 99 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false })); 100 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 101 } 102 103 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_d_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) { 104 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_d_with_provider_mv1(provider.AsFFI(), 105 locale.AsFFI(), 106 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 107 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false })); 108 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 109 } 110 111 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_md(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) { 112 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_md_mv1(locale.AsFFI(), 113 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 114 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false })); 115 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 116 } 117 118 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_md_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) { 119 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_md_with_provider_mv1(provider.AsFFI(), 120 locale.AsFFI(), 121 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 122 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false })); 123 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 124 } 125 126 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_ymd(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) { 127 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_ymd_mv1(locale.AsFFI(), 128 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 129 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }), 130 year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false })); 131 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 132 } 133 134 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_ymd_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) { 135 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_ymd_with_provider_mv1(provider.AsFFI(), 136 locale.AsFFI(), 137 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 138 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }), 139 year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false })); 140 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 141 } 142 143 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_de(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) { 144 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_de_mv1(locale.AsFFI(), 145 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 146 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false })); 147 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 148 } 149 150 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_de_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) { 151 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_de_with_provider_mv1(provider.AsFFI(), 152 locale.AsFFI(), 153 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 154 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false })); 155 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 156 } 157 158 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_mde(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) { 159 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_mde_mv1(locale.AsFFI(), 160 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 161 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false })); 162 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 163 } 164 165 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_mde_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) { 166 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_mde_with_provider_mv1(provider.AsFFI(), 167 locale.AsFFI(), 168 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 169 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false })); 170 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 171 } 172 173 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_ymde(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) { 174 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_ymde_mv1(locale.AsFFI(), 175 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 176 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }), 177 year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false })); 178 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 179 } 180 181 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_ymde_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) { 182 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_ymde_with_provider_mv1(provider.AsFFI(), 183 locale.AsFFI(), 184 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 185 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }), 186 year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false })); 187 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 188 } 189 190 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_e(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length) { 191 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_e_mv1(locale.AsFFI(), 192 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false })); 193 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 194 } 195 196 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_e_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length) { 197 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_e_with_provider_mv1(provider.AsFFI(), 198 locale.AsFFI(), 199 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false })); 200 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 201 } 202 203 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_m(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) { 204 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_m_mv1(locale.AsFFI(), 205 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 206 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false })); 207 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 208 } 209 210 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_m_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment) { 211 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_m_with_provider_mv1(provider.AsFFI(), 212 locale.AsFFI(), 213 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 214 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false })); 215 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 216 } 217 218 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_ym(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) { 219 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_ym_mv1(locale.AsFFI(), 220 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 221 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }), 222 year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false })); 223 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 224 } 225 226 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_ym_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) { 227 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_ym_with_provider_mv1(provider.AsFFI(), 228 locale.AsFFI(), 229 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 230 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }), 231 year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false })); 232 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 233 } 234 235 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_y(const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) { 236 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_y_mv1(locale.AsFFI(), 237 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 238 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }), 239 year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false })); 240 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 241 } 242 243 inline diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError> icu4x::DateFormatterGregorian::create_y_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale, std::optional<icu4x::DateTimeLength> length, std::optional<icu4x::DateTimeAlignment> alignment, std::optional<icu4x::YearStyle> year_style) { 244 auto result = icu4x::capi::icu4x_DateFormatterGregorian_create_y_with_provider_mv1(provider.AsFFI(), 245 locale.AsFFI(), 246 length.has_value() ? (icu4x::capi::DateTimeLength_option{ { length.value().AsFFI() }, true }) : (icu4x::capi::DateTimeLength_option{ {}, false }), 247 alignment.has_value() ? (icu4x::capi::DateTimeAlignment_option{ { alignment.value().AsFFI() }, true }) : (icu4x::capi::DateTimeAlignment_option{ {}, false }), 248 year_style.has_value() ? (icu4x::capi::YearStyle_option{ { year_style.value().AsFFI() }, true }) : (icu4x::capi::YearStyle_option{ {}, false })); 249 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Ok<std::unique_ptr<icu4x::DateFormatterGregorian>>(std::unique_ptr<icu4x::DateFormatterGregorian>(icu4x::DateFormatterGregorian::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::DateFormatterGregorian>, icu4x::DateTimeFormatterLoadError>(diplomat::Err<icu4x::DateTimeFormatterLoadError>(icu4x::DateTimeFormatterLoadError::FromFFI(result.err))); 250 } 251 252 inline std::string icu4x::DateFormatterGregorian::format_iso(const icu4x::IsoDate& date) const { 253 std::string output; 254 diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output); 255 icu4x::capi::icu4x_DateFormatterGregorian_format_iso_mv1(this->AsFFI(), 256 date.AsFFI(), 257 &write); 258 return output; 259 } 260 261 inline const icu4x::capi::DateFormatterGregorian* icu4x::DateFormatterGregorian::AsFFI() const { 262 return reinterpret_cast<const icu4x::capi::DateFormatterGregorian*>(this); 263 } 264 265 inline icu4x::capi::DateFormatterGregorian* icu4x::DateFormatterGregorian::AsFFI() { 266 return reinterpret_cast<icu4x::capi::DateFormatterGregorian*>(this); 267 } 268 269 inline const icu4x::DateFormatterGregorian* icu4x::DateFormatterGregorian::FromFFI(const icu4x::capi::DateFormatterGregorian* ptr) { 270 return reinterpret_cast<const icu4x::DateFormatterGregorian*>(ptr); 271 } 272 273 inline icu4x::DateFormatterGregorian* icu4x::DateFormatterGregorian::FromFFI(icu4x::capi::DateFormatterGregorian* ptr) { 274 return reinterpret_cast<icu4x::DateFormatterGregorian*>(ptr); 275 } 276 277 inline void icu4x::DateFormatterGregorian::operator delete(void* ptr) { 278 icu4x::capi::icu4x_DateFormatterGregorian_destroy_mv1(reinterpret_cast<icu4x::capi::DateFormatterGregorian*>(ptr)); 279 } 280 281 282 #endif // icu4x_DateFormatterGregorian_HPP