25struct ICU4XDateDeleter {
26 void operator()(capi::ICU4XDate* l)
const noexcept {
27 capi::ICU4XDate_destroy(l);
185 inline const capi::ICU4XDate* AsFFI()
const {
return this->inner.get(); }
186 inline capi::ICU4XDate* AsFFIMut() {
return this->inner.get(); }
187 inline explicit ICU4XDate(capi::ICU4XDate* i) : inner(i) {}
192 std::unique_ptr<capi::
ICU4XDate, ICU4XDateDeleter> inner;
195#include "ICU4XCalendar.hpp"
201 auto diplomat_result_raw_out_value = capi::ICU4XDate_create_from_iso_in_calendar(year, month, day,
calendar.AsFFI());
203 if (diplomat_result_raw_out_value.is_ok) {
208 return diplomat_result_out_value;
211 auto diplomat_result_raw_out_value = capi::ICU4XDate_create_from_codes_in_calendar(era_code.data(), era_code.size(), year,
month_code.data(),
month_code.size(), day,
calendar.AsFFI());
213 if (diplomat_result_raw_out_value.is_ok) {
218 return diplomat_result_out_value;
221 return ICU4XDate(capi::ICU4XDate_to_calendar(this->inner.get(),
calendar.AsFFI()));
224 return ICU4XIsoDate(capi::ICU4XDate_to_iso(this->inner.get()));
227 return capi::ICU4XDate_day_of_year(this->inner.get());
230 return capi::ICU4XDate_day_of_month(this->inner.get());
233 return static_cast<ICU4XIsoWeekday>(capi::ICU4XDate_day_of_week(this->inner.get()));
236 return capi::ICU4XDate_week_of_month(this->inner.get(),
static_cast<capi::ICU4XIsoWeekday
>(first_weekday));
239 auto diplomat_result_raw_out_value = capi::ICU4XDate_week_of_year(this->inner.get(), calculator.AsFFI());
241 if (diplomat_result_raw_out_value.is_ok) {
242 capi::ICU4XWeekOf diplomat_raw_struct_out_value = diplomat_result_raw_out_value.ok;
247 return diplomat_result_out_value;
250 return capi::ICU4XDate_ordinal_month(this->inner.get());
253 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
254 auto diplomat_result_raw_out_value = capi::ICU4XDate_month_code(this->inner.get(), &write_writer);
256 if (diplomat_result_raw_out_value.is_ok) {
261 return diplomat_result_out_value;
264 std::string diplomat_writeable_string;
266 auto diplomat_result_raw_out_value = capi::ICU4XDate_month_code(this->inner.get(), &diplomat_writeable_out);
268 if (diplomat_result_raw_out_value.is_ok) {
273 return diplomat_result_out_value.
replace_ok(std::move(diplomat_writeable_string));
276 return capi::ICU4XDate_year_in_era(this->inner.get());
279 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
280 auto diplomat_result_raw_out_value = capi::ICU4XDate_era(this->inner.get(), &write_writer);
282 if (diplomat_result_raw_out_value.is_ok) {
287 return diplomat_result_out_value;
290 std::string diplomat_writeable_string;
292 auto diplomat_result_raw_out_value = capi::ICU4XDate_era(this->inner.get(), &diplomat_writeable_out);
294 if (diplomat_result_raw_out_value.is_ok) {
299 return diplomat_result_out_value.
replace_ok(std::move(diplomat_writeable_string));
302 return capi::ICU4XDate_months_in_year(this->inner.get());
305 return capi::ICU4XDate_days_in_month(this->inner.get());
308 return capi::ICU4XDate_days_in_year(this->inner.get());
311 return ICU4XCalendar(capi::ICU4XDate_calendar(this->inner.get()));
ICU4XError
Definition ICU4XError.hpp:23
ICU4XIsoWeekday
Definition ICU4XIsoWeekday.hpp:15
ICU4XWeekRelativeUnit
Definition ICU4XWeekRelativeUnit.hpp:19
Definition ICU4XCalendar.hpp:32
Definition ICU4XDate.hpp:36
ICU4XIsoDate to_iso() const
Definition ICU4XDate.hpp:223
uint32_t week_of_month(ICU4XIsoWeekday first_weekday) const
Definition ICU4XDate.hpp:235
ICU4XDate(ICU4XDate &&) noexcept=default
uint32_t day_of_month() const
Definition ICU4XDate.hpp:229
uint8_t months_in_year() const
Definition ICU4XDate.hpp:301
uint32_t ordinal_month() const
Definition ICU4XDate.hpp:249
ICU4XDate(capi::ICU4XDate *i)
Definition ICU4XDate.hpp:187
ICU4XDate to_calendar(const ICU4XCalendar &calendar) const
Definition ICU4XDate.hpp:220
diplomat::result< std::monostate, ICU4XError > era_to_writeable(W &write) const
Definition ICU4XDate.hpp:278
diplomat::result< ICU4XWeekOf, ICU4XError > week_of_year(const ICU4XWeekCalculator &calculator) const
Definition ICU4XDate.hpp:238
uint8_t days_in_month() const
Definition ICU4XDate.hpp:304
static diplomat::result< ICU4XDate, ICU4XError > create_from_codes_in_calendar(const std::string_view era_code, int32_t year, const std::string_view month_code, uint8_t day, const ICU4XCalendar &calendar)
Definition ICU4XDate.hpp:210
ICU4XCalendar calendar() const
Definition ICU4XDate.hpp:310
diplomat::result< std::string, ICU4XError > era() const
Definition ICU4XDate.hpp:289
uint16_t day_of_year() const
Definition ICU4XDate.hpp:226
int32_t year_in_era() const
Definition ICU4XDate.hpp:275
ICU4XIsoWeekday day_of_week() const
Definition ICU4XDate.hpp:232
diplomat::result< std::string, ICU4XError > month_code() const
Definition ICU4XDate.hpp:263
uint16_t days_in_year() const
Definition ICU4XDate.hpp:307
static diplomat::result< ICU4XDate, ICU4XError > create_from_iso_in_calendar(int32_t year, uint8_t month, uint8_t day, const ICU4XCalendar &calendar)
Definition ICU4XDate.hpp:200
diplomat::result< std::monostate, ICU4XError > month_code_to_writeable(W &write) const
Definition ICU4XDate.hpp:252
Definition ICU4XIsoDate.hpp:36
Definition ICU4XWeekCalculator.hpp:35
Definition diplomat_runtime.hpp:84
result< T2, E > replace_ok(T2 &&t)
Definition diplomat_runtime.hpp:125
capi::DiplomatWriteable WriteableFromString(std::string &string)
Definition diplomat_runtime.hpp:31
Definition ICU4XWeekOf.hpp:20
Definition diplomat_runtime.hpp:69
Definition diplomat_runtime.hpp:55