tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

Date.hpp (9587B)


      1 #ifndef icu4x_Date_HPP
      2 #define icu4x_Date_HPP
      3 
      4 #include "Date.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 "Calendar.hpp"
     16 #include "CalendarError.hpp"
     17 #include "IsoDate.hpp"
     18 #include "Rfc9557ParseError.hpp"
     19 #include "Weekday.hpp"
     20 
     21 
     22 namespace icu4x {
     23 namespace capi {
     24    extern "C" {
     25 
     26    typedef struct icu4x_Date_from_iso_in_calendar_mv1_result {union {icu4x::capi::Date* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_Date_from_iso_in_calendar_mv1_result;
     27    icu4x_Date_from_iso_in_calendar_mv1_result icu4x_Date_from_iso_in_calendar_mv1(int32_t year, uint8_t month, uint8_t day, const icu4x::capi::Calendar* calendar);
     28 
     29    typedef struct icu4x_Date_from_codes_in_calendar_mv1_result {union {icu4x::capi::Date* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_Date_from_codes_in_calendar_mv1_result;
     30    icu4x_Date_from_codes_in_calendar_mv1_result icu4x_Date_from_codes_in_calendar_mv1(diplomat::capi::DiplomatStringView era_code, int32_t year, diplomat::capi::DiplomatStringView month_code, uint8_t day, const icu4x::capi::Calendar* calendar);
     31 
     32    typedef struct icu4x_Date_from_rata_die_mv1_result {union {icu4x::capi::Date* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_Date_from_rata_die_mv1_result;
     33    icu4x_Date_from_rata_die_mv1_result icu4x_Date_from_rata_die_mv1(int64_t rd, const icu4x::capi::Calendar* calendar);
     34 
     35    typedef struct icu4x_Date_from_string_mv1_result {union {icu4x::capi::Date* ok; icu4x::capi::Rfc9557ParseError err;}; bool is_ok;} icu4x_Date_from_string_mv1_result;
     36    icu4x_Date_from_string_mv1_result icu4x_Date_from_string_mv1(diplomat::capi::DiplomatStringView v, const icu4x::capi::Calendar* calendar);
     37 
     38    icu4x::capi::Date* icu4x_Date_to_calendar_mv1(const icu4x::capi::Date* self, const icu4x::capi::Calendar* calendar);
     39 
     40    icu4x::capi::IsoDate* icu4x_Date_to_iso_mv1(const icu4x::capi::Date* self);
     41 
     42    int64_t icu4x_Date_to_rata_die_mv1(const icu4x::capi::Date* self);
     43 
     44    uint16_t icu4x_Date_day_of_year_mv1(const icu4x::capi::Date* self);
     45 
     46    uint8_t icu4x_Date_day_of_month_mv1(const icu4x::capi::Date* self);
     47 
     48    icu4x::capi::Weekday icu4x_Date_day_of_week_mv1(const icu4x::capi::Date* self);
     49 
     50    uint8_t icu4x_Date_ordinal_month_mv1(const icu4x::capi::Date* self);
     51 
     52    void icu4x_Date_month_code_mv1(const icu4x::capi::Date* self, diplomat::capi::DiplomatWrite* write);
     53 
     54    uint8_t icu4x_Date_month_number_mv1(const icu4x::capi::Date* self);
     55 
     56    bool icu4x_Date_month_is_leap_mv1(const icu4x::capi::Date* self);
     57 
     58    int32_t icu4x_Date_era_year_or_related_iso_mv1(const icu4x::capi::Date* self);
     59 
     60    int32_t icu4x_Date_extended_year_mv1(const icu4x::capi::Date* self);
     61 
     62    void icu4x_Date_era_mv1(const icu4x::capi::Date* self, diplomat::capi::DiplomatWrite* write);
     63 
     64    uint8_t icu4x_Date_months_in_year_mv1(const icu4x::capi::Date* self);
     65 
     66    uint8_t icu4x_Date_days_in_month_mv1(const icu4x::capi::Date* self);
     67 
     68    uint16_t icu4x_Date_days_in_year_mv1(const icu4x::capi::Date* self);
     69 
     70    icu4x::capi::Calendar* icu4x_Date_calendar_mv1(const icu4x::capi::Date* self);
     71 
     72    void icu4x_Date_destroy_mv1(Date* self);
     73 
     74    } // extern "C"
     75 } // namespace capi
     76 } // namespace
     77 
     78 inline diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError> icu4x::Date::from_iso_in_calendar(int32_t year, uint8_t month, uint8_t day, const icu4x::Calendar& calendar) {
     79  auto result = icu4x::capi::icu4x_Date_from_iso_in_calendar_mv1(year,
     80    month,
     81    day,
     82    calendar.AsFFI());
     83  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::Date>>(std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err)));
     84 }
     85 
     86 inline diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError> icu4x::Date::from_codes_in_calendar(std::string_view era_code, int32_t year, std::string_view month_code, uint8_t day, const icu4x::Calendar& calendar) {
     87  auto result = icu4x::capi::icu4x_Date_from_codes_in_calendar_mv1({era_code.data(), era_code.size()},
     88    year,
     89    {month_code.data(), month_code.size()},
     90    day,
     91    calendar.AsFFI());
     92  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::Date>>(std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err)));
     93 }
     94 
     95 inline diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError> icu4x::Date::from_rata_die(int64_t rd, const icu4x::Calendar& calendar) {
     96  auto result = icu4x::capi::icu4x_Date_from_rata_die_mv1(rd,
     97    calendar.AsFFI());
     98  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::Date>>(std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err)));
     99 }
    100 
    101 inline diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::Rfc9557ParseError> icu4x::Date::from_string(std::string_view v, const icu4x::Calendar& calendar) {
    102  auto result = icu4x::capi::icu4x_Date_from_string_mv1({v.data(), v.size()},
    103    calendar.AsFFI());
    104  return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::Rfc9557ParseError>(diplomat::Ok<std::unique_ptr<icu4x::Date>>(std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::Date>, icu4x::Rfc9557ParseError>(diplomat::Err<icu4x::Rfc9557ParseError>(icu4x::Rfc9557ParseError::FromFFI(result.err)));
    105 }
    106 
    107 inline std::unique_ptr<icu4x::Date> icu4x::Date::to_calendar(const icu4x::Calendar& calendar) const {
    108  auto result = icu4x::capi::icu4x_Date_to_calendar_mv1(this->AsFFI(),
    109    calendar.AsFFI());
    110  return std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result));
    111 }
    112 
    113 inline std::unique_ptr<icu4x::IsoDate> icu4x::Date::to_iso() const {
    114  auto result = icu4x::capi::icu4x_Date_to_iso_mv1(this->AsFFI());
    115  return std::unique_ptr<icu4x::IsoDate>(icu4x::IsoDate::FromFFI(result));
    116 }
    117 
    118 inline int64_t icu4x::Date::to_rata_die() const {
    119  auto result = icu4x::capi::icu4x_Date_to_rata_die_mv1(this->AsFFI());
    120  return result;
    121 }
    122 
    123 inline uint16_t icu4x::Date::day_of_year() const {
    124  auto result = icu4x::capi::icu4x_Date_day_of_year_mv1(this->AsFFI());
    125  return result;
    126 }
    127 
    128 inline uint8_t icu4x::Date::day_of_month() const {
    129  auto result = icu4x::capi::icu4x_Date_day_of_month_mv1(this->AsFFI());
    130  return result;
    131 }
    132 
    133 inline icu4x::Weekday icu4x::Date::day_of_week() const {
    134  auto result = icu4x::capi::icu4x_Date_day_of_week_mv1(this->AsFFI());
    135  return icu4x::Weekday::FromFFI(result);
    136 }
    137 
    138 inline uint8_t icu4x::Date::ordinal_month() const {
    139  auto result = icu4x::capi::icu4x_Date_ordinal_month_mv1(this->AsFFI());
    140  return result;
    141 }
    142 
    143 inline std::string icu4x::Date::month_code() const {
    144  std::string output;
    145  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
    146  icu4x::capi::icu4x_Date_month_code_mv1(this->AsFFI(),
    147    &write);
    148  return output;
    149 }
    150 
    151 inline uint8_t icu4x::Date::month_number() const {
    152  auto result = icu4x::capi::icu4x_Date_month_number_mv1(this->AsFFI());
    153  return result;
    154 }
    155 
    156 inline bool icu4x::Date::month_is_leap() const {
    157  auto result = icu4x::capi::icu4x_Date_month_is_leap_mv1(this->AsFFI());
    158  return result;
    159 }
    160 
    161 inline int32_t icu4x::Date::era_year_or_related_iso() const {
    162  auto result = icu4x::capi::icu4x_Date_era_year_or_related_iso_mv1(this->AsFFI());
    163  return result;
    164 }
    165 
    166 inline int32_t icu4x::Date::extended_year() const {
    167  auto result = icu4x::capi::icu4x_Date_extended_year_mv1(this->AsFFI());
    168  return result;
    169 }
    170 
    171 inline std::string icu4x::Date::era() const {
    172  std::string output;
    173  diplomat::capi::DiplomatWrite write = diplomat::WriteFromString(output);
    174  icu4x::capi::icu4x_Date_era_mv1(this->AsFFI(),
    175    &write);
    176  return output;
    177 }
    178 
    179 inline uint8_t icu4x::Date::months_in_year() const {
    180  auto result = icu4x::capi::icu4x_Date_months_in_year_mv1(this->AsFFI());
    181  return result;
    182 }
    183 
    184 inline uint8_t icu4x::Date::days_in_month() const {
    185  auto result = icu4x::capi::icu4x_Date_days_in_month_mv1(this->AsFFI());
    186  return result;
    187 }
    188 
    189 inline uint16_t icu4x::Date::days_in_year() const {
    190  auto result = icu4x::capi::icu4x_Date_days_in_year_mv1(this->AsFFI());
    191  return result;
    192 }
    193 
    194 inline std::unique_ptr<icu4x::Calendar> icu4x::Date::calendar() const {
    195  auto result = icu4x::capi::icu4x_Date_calendar_mv1(this->AsFFI());
    196  return std::unique_ptr<icu4x::Calendar>(icu4x::Calendar::FromFFI(result));
    197 }
    198 
    199 inline const icu4x::capi::Date* icu4x::Date::AsFFI() const {
    200  return reinterpret_cast<const icu4x::capi::Date*>(this);
    201 }
    202 
    203 inline icu4x::capi::Date* icu4x::Date::AsFFI() {
    204  return reinterpret_cast<icu4x::capi::Date*>(this);
    205 }
    206 
    207 inline const icu4x::Date* icu4x::Date::FromFFI(const icu4x::capi::Date* ptr) {
    208  return reinterpret_cast<const icu4x::Date*>(ptr);
    209 }
    210 
    211 inline icu4x::Date* icu4x::Date::FromFFI(icu4x::capi::Date* ptr) {
    212  return reinterpret_cast<icu4x::Date*>(ptr);
    213 }
    214 
    215 inline void icu4x::Date::operator delete(void* ptr) {
    216  icu4x::capi::icu4x_Date_destroy_mv1(reinterpret_cast<icu4x::capi::Date*>(ptr));
    217 }
    218 
    219 
    220 #endif // icu4x_Date_HPP