ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
IsoDate.hpp
Go to the documentation of this file.
1#ifndef icu4x_IsoDate_HPP
2#define icu4x_IsoDate_HPP
3
4#include "IsoDate.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>
15#include "Calendar.hpp"
16#include "CalendarError.hpp"
17#include "Date.hpp"
18#include "IsoWeekOfYear.hpp"
19#include "Rfc9557ParseError.hpp"
20#include "Weekday.hpp"
21
22
23namespace icu4x {
24namespace capi {
25 extern "C" {
26
27 typedef struct icu4x_IsoDate_create_mv1_result {union {icu4x::capi::IsoDate* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_IsoDate_create_mv1_result;
28 icu4x_IsoDate_create_mv1_result icu4x_IsoDate_create_mv1(int32_t year, uint8_t month, uint8_t day);
29
30 icu4x::capi::IsoDate* icu4x_IsoDate_from_rata_die_mv1(int64_t rd);
31
32 typedef struct icu4x_IsoDate_from_string_mv1_result {union {icu4x::capi::IsoDate* ok; icu4x::capi::Rfc9557ParseError err;}; bool is_ok;} icu4x_IsoDate_from_string_mv1_result;
33 icu4x_IsoDate_from_string_mv1_result icu4x_IsoDate_from_string_mv1(diplomat::capi::DiplomatStringView v);
34
35 icu4x::capi::Date* icu4x_IsoDate_to_calendar_mv1(const icu4x::capi::IsoDate* self, const icu4x::capi::Calendar* calendar);
36
37 icu4x::capi::Date* icu4x_IsoDate_to_any_mv1(const icu4x::capi::IsoDate* self);
38
39 int64_t icu4x_IsoDate_to_rata_die_mv1(const icu4x::capi::IsoDate* self);
40
41 uint16_t icu4x_IsoDate_day_of_year_mv1(const icu4x::capi::IsoDate* self);
42
43 uint8_t icu4x_IsoDate_day_of_month_mv1(const icu4x::capi::IsoDate* self);
44
45 icu4x::capi::Weekday icu4x_IsoDate_day_of_week_mv1(const icu4x::capi::IsoDate* self);
46
47 icu4x::capi::IsoWeekOfYear icu4x_IsoDate_week_of_year_mv1(const icu4x::capi::IsoDate* self);
48
49 uint8_t icu4x_IsoDate_month_mv1(const icu4x::capi::IsoDate* self);
50
51 int32_t icu4x_IsoDate_year_mv1(const icu4x::capi::IsoDate* self);
52
53 bool icu4x_IsoDate_is_in_leap_year_mv1(const icu4x::capi::IsoDate* self);
54
55 uint8_t icu4x_IsoDate_months_in_year_mv1(const icu4x::capi::IsoDate* self);
56
57 uint8_t icu4x_IsoDate_days_in_month_mv1(const icu4x::capi::IsoDate* self);
58
59 uint16_t icu4x_IsoDate_days_in_year_mv1(const icu4x::capi::IsoDate* self);
60
61 void icu4x_IsoDate_destroy_mv1(IsoDate* self);
62
63 } // extern "C"
64} // namespace capi
65} // namespace
66
68 auto result = icu4x::capi::icu4x_IsoDate_create_mv1(year,
69 month,
70 day);
71 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarError>(diplomat::Ok<std::unique_ptr<icu4x::IsoDate>>(std::unique_ptr<icu4x::IsoDate>(icu4x::IsoDate::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::CalendarError>(diplomat::Err<icu4x::CalendarError>(icu4x::CalendarError::FromFFI(result.err)));
72}
73
74inline std::unique_ptr<icu4x::IsoDate> icu4x::IsoDate::from_rata_die(int64_t rd) {
75 auto result = icu4x::capi::icu4x_IsoDate_from_rata_die_mv1(rd);
76 return std::unique_ptr<icu4x::IsoDate>(icu4x::IsoDate::FromFFI(result));
77}
78
80 auto result = icu4x::capi::icu4x_IsoDate_from_string_mv1({v.data(), v.size()});
81 return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::Rfc9557ParseError>(diplomat::Ok<std::unique_ptr<icu4x::IsoDate>>(std::unique_ptr<icu4x::IsoDate>(icu4x::IsoDate::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::IsoDate>, icu4x::Rfc9557ParseError>(diplomat::Err<icu4x::Rfc9557ParseError>(icu4x::Rfc9557ParseError::FromFFI(result.err)));
82}
83
84inline std::unique_ptr<icu4x::Date> icu4x::IsoDate::to_calendar(const icu4x::Calendar& calendar) const {
85 auto result = icu4x::capi::icu4x_IsoDate_to_calendar_mv1(this->AsFFI(),
86 calendar.AsFFI());
87 return std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result));
88}
89
90inline std::unique_ptr<icu4x::Date> icu4x::IsoDate::to_any() const {
91 auto result = icu4x::capi::icu4x_IsoDate_to_any_mv1(this->AsFFI());
92 return std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result));
93}
94
95inline int64_t icu4x::IsoDate::to_rata_die() const {
96 auto result = icu4x::capi::icu4x_IsoDate_to_rata_die_mv1(this->AsFFI());
97 return result;
98}
99
100inline uint16_t icu4x::IsoDate::day_of_year() const {
101 auto result = icu4x::capi::icu4x_IsoDate_day_of_year_mv1(this->AsFFI());
102 return result;
103}
104
105inline uint8_t icu4x::IsoDate::day_of_month() const {
106 auto result = icu4x::capi::icu4x_IsoDate_day_of_month_mv1(this->AsFFI());
107 return result;
108}
109
111 auto result = icu4x::capi::icu4x_IsoDate_day_of_week_mv1(this->AsFFI());
112 return icu4x::Weekday::FromFFI(result);
113}
114
116 auto result = icu4x::capi::icu4x_IsoDate_week_of_year_mv1(this->AsFFI());
117 return icu4x::IsoWeekOfYear::FromFFI(result);
118}
119
120inline uint8_t icu4x::IsoDate::month() const {
121 auto result = icu4x::capi::icu4x_IsoDate_month_mv1(this->AsFFI());
122 return result;
123}
124
125inline int32_t icu4x::IsoDate::year() const {
126 auto result = icu4x::capi::icu4x_IsoDate_year_mv1(this->AsFFI());
127 return result;
128}
129
131 auto result = icu4x::capi::icu4x_IsoDate_is_in_leap_year_mv1(this->AsFFI());
132 return result;
133}
134
135inline uint8_t icu4x::IsoDate::months_in_year() const {
136 auto result = icu4x::capi::icu4x_IsoDate_months_in_year_mv1(this->AsFFI());
137 return result;
138}
139
140inline uint8_t icu4x::IsoDate::days_in_month() const {
141 auto result = icu4x::capi::icu4x_IsoDate_days_in_month_mv1(this->AsFFI());
142 return result;
143}
144
145inline uint16_t icu4x::IsoDate::days_in_year() const {
146 auto result = icu4x::capi::icu4x_IsoDate_days_in_year_mv1(this->AsFFI());
147 return result;
148}
149
150inline const icu4x::capi::IsoDate* icu4x::IsoDate::AsFFI() const {
151 return reinterpret_cast<const icu4x::capi::IsoDate*>(this);
152}
153
154inline icu4x::capi::IsoDate* icu4x::IsoDate::AsFFI() {
155 return reinterpret_cast<icu4x::capi::IsoDate*>(this);
156}
157
158inline const icu4x::IsoDate* icu4x::IsoDate::FromFFI(const icu4x::capi::IsoDate* ptr) {
159 return reinterpret_cast<const icu4x::IsoDate*>(ptr);
160}
161
162inline icu4x::IsoDate* icu4x::IsoDate::FromFFI(icu4x::capi::IsoDate* ptr) {
163 return reinterpret_cast<icu4x::IsoDate*>(ptr);
164}
165
166inline void icu4x::IsoDate::operator delete(void* ptr) {
167 icu4x::capi::icu4x_IsoDate_destroy_mv1(reinterpret_cast<icu4x::capi::IsoDate*>(ptr));
168}
169
170
171#endif // icu4x_IsoDate_HPP
Definition diplomat_runtime.hpp:140
Definition CalendarError.d.hpp:32
Definition Calendar.d.hpp:34
uint8_t days_in_month() const
Definition IsoDate.hpp:140
static diplomat::result< std::unique_ptr< icu4x::IsoDate >, icu4x::CalendarError > create(int32_t year, uint8_t month, uint8_t day)
Definition IsoDate.hpp:67
int32_t year() const
Definition IsoDate.hpp:125
uint8_t month() const
Definition IsoDate.hpp:120
std::unique_ptr< icu4x::Date > to_any() const
Definition IsoDate.hpp:90
bool is_in_leap_year() const
Definition IsoDate.hpp:130
static std::unique_ptr< icu4x::IsoDate > from_rata_die(int64_t rd)
Definition IsoDate.hpp:74
uint8_t day_of_month() const
Definition IsoDate.hpp:105
std::unique_ptr< icu4x::Date > to_calendar(const icu4x::Calendar &calendar) const
Definition IsoDate.hpp:84
icu4x::IsoWeekOfYear week_of_year() const
Definition IsoDate.hpp:115
uint16_t day_of_year() const
Definition IsoDate.hpp:100
static diplomat::result< std::unique_ptr< icu4x::IsoDate >, icu4x::Rfc9557ParseError > from_string(std::string_view v)
Definition IsoDate.hpp:79
uint8_t months_in_year() const
Definition IsoDate.hpp:135
icu4x::Weekday day_of_week() const
Definition IsoDate.hpp:110
int64_t to_rata_die() const
Definition IsoDate.hpp:95
uint16_t days_in_year() const
Definition IsoDate.hpp:145
Definition Rfc9557ParseError.d.hpp:33
Definition Weekday.d.hpp:32
Definition Bidi.d.hpp:14
Definition diplomat_runtime.hpp:125
Definition diplomat_runtime.hpp:111
Definition IsoWeekOfYear.d.hpp:28