1#ifndef ICU4XCustomTimeZone_HPP
2#define ICU4XCustomTimeZone_HPP
12#include "ICU4XCustomTimeZone.h"
24struct ICU4XCustomTimeZoneDeleter {
25 void operator()(capi::ICU4XCustomTimeZone* l)
const noexcept {
26 capi::ICU4XCustomTimeZone_destroy(l);
318 inline const capi::ICU4XCustomTimeZone* AsFFI()
const {
return this->inner.get(); }
319 inline capi::ICU4XCustomTimeZone* AsFFIMut() {
return this->inner.get(); }
328#include "ICU4XIanaToBcp47Mapper.hpp"
334 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_create_from_string(s.data(), s.size());
336 if (diplomat_result_raw_out_value.is_ok) {
341 return diplomat_result_out_value;
350 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_try_set_gmt_offset_seconds(this->inner.get(), offset_seconds);
352 if (diplomat_result_raw_out_value.is_ok) {
357 return diplomat_result_out_value;
360 capi::ICU4XCustomTimeZone_clear_gmt_offset(this->inner.get());
363 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_gmt_offset_seconds(this->inner.get());
365 if (diplomat_result_raw_out_value.is_ok) {
370 return diplomat_result_out_value;
373 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_is_gmt_offset_positive(this->inner.get());
375 if (diplomat_result_raw_out_value.is_ok) {
380 return diplomat_result_out_value;
383 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_is_gmt_offset_zero(this->inner.get());
385 if (diplomat_result_raw_out_value.is_ok) {
390 return diplomat_result_out_value;
393 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_gmt_offset_has_minutes(this->inner.get());
395 if (diplomat_result_raw_out_value.is_ok) {
400 return diplomat_result_out_value;
403 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_gmt_offset_has_seconds(this->inner.get());
405 if (diplomat_result_raw_out_value.is_ok) {
410 return diplomat_result_out_value;
413 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_try_set_time_zone_id(this->inner.get(),
id.data(),
id.size());
415 if (diplomat_result_raw_out_value.is_ok) {
420 return diplomat_result_out_value;
423 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_try_set_iana_time_zone_id(this->inner.get(), mapper.AsFFI(),
id.data(),
id.size());
425 if (diplomat_result_raw_out_value.is_ok) {
430 return diplomat_result_out_value;
433 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_try_set_iana_time_zone_id_2(this->inner.get(), mapper.AsFFI(),
id.data(),
id.size());
435 if (diplomat_result_raw_out_value.is_ok) {
440 return diplomat_result_out_value;
443 capi::ICU4XCustomTimeZone_clear_time_zone_id(this->inner.get());
446 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
447 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_time_zone_id(this->inner.get(), &write_writer);
449 if (diplomat_result_raw_out_value.is_ok) {
454 return diplomat_result_out_value;
457 std::string diplomat_writeable_string;
459 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_time_zone_id(this->inner.get(), &diplomat_writeable_out);
461 if (diplomat_result_raw_out_value.is_ok) {
466 return diplomat_result_out_value.
replace_ok(std::move(diplomat_writeable_string));
469 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_try_set_metazone_id(this->inner.get(),
id.data(),
id.size());
471 if (diplomat_result_raw_out_value.is_ok) {
476 return diplomat_result_out_value;
479 capi::ICU4XCustomTimeZone_clear_metazone_id(this->inner.get());
482 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
483 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_metazone_id(this->inner.get(), &write_writer);
485 if (diplomat_result_raw_out_value.is_ok) {
490 return diplomat_result_out_value;
493 std::string diplomat_writeable_string;
495 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_metazone_id(this->inner.get(), &diplomat_writeable_out);
497 if (diplomat_result_raw_out_value.is_ok) {
502 return diplomat_result_out_value.
replace_ok(std::move(diplomat_writeable_string));
505 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_try_set_zone_variant(this->inner.get(),
id.data(),
id.size());
507 if (diplomat_result_raw_out_value.is_ok) {
512 return diplomat_result_out_value;
515 capi::ICU4XCustomTimeZone_clear_zone_variant(this->inner.get());
518 capi::DiplomatWriteable write_writer = diplomat::WriteableTrait<W>::Construct(write);
519 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_zone_variant(this->inner.get(), &write_writer);
521 if (diplomat_result_raw_out_value.is_ok) {
526 return diplomat_result_out_value;
529 std::string diplomat_writeable_string;
531 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_zone_variant(this->inner.get(), &diplomat_writeable_out);
533 if (diplomat_result_raw_out_value.is_ok) {
538 return diplomat_result_out_value.
replace_ok(std::move(diplomat_writeable_string));
541 capi::ICU4XCustomTimeZone_set_standard_time(this->inner.get());
544 capi::ICU4XCustomTimeZone_set_daylight_time(this->inner.get());
547 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_is_standard_time(this->inner.get());
549 if (diplomat_result_raw_out_value.is_ok) {
554 return diplomat_result_out_value;
557 auto diplomat_result_raw_out_value = capi::ICU4XCustomTimeZone_is_daylight_time(this->inner.get());
559 if (diplomat_result_raw_out_value.is_ok) {
564 return diplomat_result_out_value;
567 capi::ICU4XCustomTimeZone_maybe_calculate_metazone(this->inner.get(), metazone_calculator.AsFFI(), local_datetime.AsFFI());
ICU4XError
Definition ICU4XError.hpp:23
Definition ICU4XCustomTimeZone.hpp:33
diplomat::result< bool, ICU4XError > is_gmt_offset_positive() const
Definition ICU4XCustomTimeZone.hpp:372
diplomat::result< bool, ICU4XError > gmt_offset_has_seconds() const
Definition ICU4XCustomTimeZone.hpp:402
void clear_gmt_offset()
Definition ICU4XCustomTimeZone.hpp:359
void maybe_calculate_metazone(const ICU4XMetazoneCalculator &metazone_calculator, const ICU4XIsoDateTime &local_datetime)
Definition ICU4XCustomTimeZone.hpp:566
diplomat::result< std::monostate, ICU4XError > try_set_gmt_offset_seconds(int32_t offset_seconds)
Definition ICU4XCustomTimeZone.hpp:349
static ICU4XCustomTimeZone create_utc()
Definition ICU4XCustomTimeZone.hpp:346
diplomat::result< bool, ICU4XError > gmt_offset_has_minutes() const
Definition ICU4XCustomTimeZone.hpp:392
diplomat::result< bool, ICU4XError > is_standard_time() const
Definition ICU4XCustomTimeZone.hpp:546
void clear_metazone_id()
Definition ICU4XCustomTimeZone.hpp:478
ICU4XCustomTimeZone()=default
diplomat::result< bool, ICU4XError > is_gmt_offset_zero() const
Definition ICU4XCustomTimeZone.hpp:382
diplomat::result< std::monostate, ICU4XError > time_zone_id_to_writeable(W &write) const
Definition ICU4XCustomTimeZone.hpp:445
void clear_time_zone_id()
Definition ICU4XCustomTimeZone.hpp:442
diplomat::result< std::monostate, ICU4XError > try_set_iana_time_zone_id(const ICU4XIanaToBcp47Mapper &mapper, const std::string_view id)
Definition ICU4XCustomTimeZone.hpp:422
static ICU4XCustomTimeZone create_empty()
Definition ICU4XCustomTimeZone.hpp:343
diplomat::result< std::string, ICU4XError > zone_variant() const
Definition ICU4XCustomTimeZone.hpp:528
ICU4XCustomTimeZone(ICU4XCustomTimeZone &&) noexcept=default
diplomat::result< std::monostate, ICU4XError > try_set_iana_time_zone_id_2(const ICU4XTimeZoneIdMapper &mapper, const std::string_view id)
Definition ICU4XCustomTimeZone.hpp:432
diplomat::result< bool, ICU4XError > is_daylight_time() const
Definition ICU4XCustomTimeZone.hpp:556
void clear_zone_variant()
Definition ICU4XCustomTimeZone.hpp:514
static diplomat::result< ICU4XCustomTimeZone, ICU4XError > create_from_string(const std::string_view s)
Definition ICU4XCustomTimeZone.hpp:333
diplomat::result< std::monostate, ICU4XError > try_set_time_zone_id(const std::string_view id)
Definition ICU4XCustomTimeZone.hpp:412
diplomat::result< int32_t, ICU4XError > gmt_offset_seconds() const
Definition ICU4XCustomTimeZone.hpp:362
diplomat::result< std::monostate, ICU4XError > try_set_zone_variant(const std::string_view id)
Definition ICU4XCustomTimeZone.hpp:504
void set_standard_time()
Definition ICU4XCustomTimeZone.hpp:540
diplomat::result< std::monostate, ICU4XError > metazone_id_to_writeable(W &write) const
Definition ICU4XCustomTimeZone.hpp:481
diplomat::result< std::string, ICU4XError > metazone_id() const
Definition ICU4XCustomTimeZone.hpp:492
diplomat::result< std::monostate, ICU4XError > zone_variant_to_writeable(W &write) const
Definition ICU4XCustomTimeZone.hpp:517
ICU4XCustomTimeZone(capi::ICU4XCustomTimeZone *i)
Definition ICU4XCustomTimeZone.hpp:320
diplomat::result< std::string, ICU4XError > time_zone_id() const
Definition ICU4XCustomTimeZone.hpp:456
void set_daylight_time()
Definition ICU4XCustomTimeZone.hpp:543
diplomat::result< std::monostate, ICU4XError > try_set_metazone_id(const std::string_view id)
Definition ICU4XCustomTimeZone.hpp:468
Definition ICU4XIanaToBcp47Mapper.hpp:36
Definition ICU4XIsoDateTime.hpp:38
Definition ICU4XTimeZoneIdMapper.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 diplomat_runtime.hpp:69
Definition diplomat_runtime.hpp:55