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>
14#include "Calendar.hpp"
16#include "CalendarError.hpp"
17#include "Date.hpp"
18#include "DateAddOptions.hpp"
20#include "DateDuration.hpp"
21#include "IsoWeekOfYear.hpp"
22#include "Rfc9557ParseError.hpp"
23#include "Weekday.hpp"
24#include "diplomat_runtime.hpp"
25
26
27namespace icu4x {
28namespace capi {
29 extern "C" {
30
31 typedef struct icu4x_IsoDate_create_mv1_result {union {icu4x::capi::IsoDate* ok; icu4x::capi::CalendarError err;}; bool is_ok;} icu4x_IsoDate_create_mv1_result;
32 icu4x_IsoDate_create_mv1_result icu4x_IsoDate_create_mv1(int32_t year, uint8_t month, uint8_t day);
33
34 icu4x::capi::IsoDate* icu4x_IsoDate_from_rata_die_mv1(int64_t rd);
35
36 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;
37 icu4x_IsoDate_from_string_mv1_result icu4x_IsoDate_from_string_mv1(icu4x::diplomat::capi::DiplomatStringView v);
38
39 icu4x::capi::Date* icu4x_IsoDate_to_calendar_mv1(const icu4x::capi::IsoDate* self, const icu4x::capi::Calendar* calendar);
40
41 icu4x::capi::Date* icu4x_IsoDate_to_any_mv1(const icu4x::capi::IsoDate* self);
42
43 int64_t icu4x_IsoDate_to_rata_die_mv1(const icu4x::capi::IsoDate* self);
44
45 uint16_t icu4x_IsoDate_day_of_year_mv1(const icu4x::capi::IsoDate* self);
46
47 uint8_t icu4x_IsoDate_day_of_month_mv1(const icu4x::capi::IsoDate* self);
48
49 icu4x::capi::Weekday icu4x_IsoDate_day_of_week_mv1(const icu4x::capi::IsoDate* self);
50
51 icu4x::capi::Weekday icu4x_IsoDate_weekday_mv1(const icu4x::capi::IsoDate* self);
52
53 icu4x::capi::IsoWeekOfYear icu4x_IsoDate_week_of_year_mv1(const icu4x::capi::IsoDate* self);
54
55 uint8_t icu4x_IsoDate_month_mv1(const icu4x::capi::IsoDate* self);
56
57 int32_t icu4x_IsoDate_year_mv1(const icu4x::capi::IsoDate* self);
58
59 bool icu4x_IsoDate_is_in_leap_year_mv1(const icu4x::capi::IsoDate* self);
60
61 uint8_t icu4x_IsoDate_months_in_year_mv1(const icu4x::capi::IsoDate* self);
62
63 uint8_t icu4x_IsoDate_days_in_month_mv1(const icu4x::capi::IsoDate* self);
64
65 uint16_t icu4x_IsoDate_days_in_year_mv1(const icu4x::capi::IsoDate* self);
66
67 typedef struct icu4x_IsoDate_try_add_with_options_mv1_result {union {icu4x::capi::IsoDate* ok; icu4x::capi::CalendarDateAddError err;}; bool is_ok;} icu4x_IsoDate_try_add_with_options_mv1_result;
68 icu4x_IsoDate_try_add_with_options_mv1_result icu4x_IsoDate_try_add_with_options_mv1(const icu4x::capi::IsoDate* self, icu4x::capi::DateDuration duration, icu4x::capi::DateAddOptions options);
69
70 icu4x::capi::DateDuration icu4x_IsoDate_until_with_options_mv1(const icu4x::capi::IsoDate* self, const icu4x::capi::IsoDate* other, icu4x::capi::DateDifferenceOptions options);
71
72 void icu4x_IsoDate_destroy_mv1(IsoDate* self);
73
74 } // extern "C"
75} // namespace capi
76} // namespace
77
79 auto result = icu4x::capi::icu4x_IsoDate_create_mv1(year,
80 month,
81 day);
83}
84
85inline std::unique_ptr<icu4x::IsoDate> icu4x::IsoDate::from_rata_die(int64_t rd) {
86 auto result = icu4x::capi::icu4x_IsoDate_from_rata_die_mv1(rd);
87 return std::unique_ptr<icu4x::IsoDate>(icu4x::IsoDate::FromFFI(result));
88}
89
91 auto result = icu4x::capi::icu4x_IsoDate_from_string_mv1({v.data(), v.size()});
93}
94
95inline std::unique_ptr<icu4x::Date> icu4x::IsoDate::to_calendar(const icu4x::Calendar& calendar) const {
96 auto result = icu4x::capi::icu4x_IsoDate_to_calendar_mv1(this->AsFFI(),
97 calendar.AsFFI());
98 return std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result));
99}
100
101inline std::unique_ptr<icu4x::Date> icu4x::IsoDate::to_any() const {
102 auto result = icu4x::capi::icu4x_IsoDate_to_any_mv1(this->AsFFI());
103 return std::unique_ptr<icu4x::Date>(icu4x::Date::FromFFI(result));
104}
105
106inline int64_t icu4x::IsoDate::to_rata_die() const {
107 auto result = icu4x::capi::icu4x_IsoDate_to_rata_die_mv1(this->AsFFI());
108 return result;
109}
110
111inline uint16_t icu4x::IsoDate::day_of_year() const {
112 auto result = icu4x::capi::icu4x_IsoDate_day_of_year_mv1(this->AsFFI());
113 return result;
114}
115
116inline uint8_t icu4x::IsoDate::day_of_month() const {
117 auto result = icu4x::capi::icu4x_IsoDate_day_of_month_mv1(this->AsFFI());
118 return result;
119}
120
122 auto result = icu4x::capi::icu4x_IsoDate_day_of_week_mv1(this->AsFFI());
123 return icu4x::Weekday::FromFFI(result);
124}
125
127 auto result = icu4x::capi::icu4x_IsoDate_weekday_mv1(this->AsFFI());
128 return icu4x::Weekday::FromFFI(result);
129}
130
132 auto result = icu4x::capi::icu4x_IsoDate_week_of_year_mv1(this->AsFFI());
133 return icu4x::IsoWeekOfYear::FromFFI(result);
134}
135
136inline uint8_t icu4x::IsoDate::month() const {
137 auto result = icu4x::capi::icu4x_IsoDate_month_mv1(this->AsFFI());
138 return result;
139}
140
141inline int32_t icu4x::IsoDate::year() const {
142 auto result = icu4x::capi::icu4x_IsoDate_year_mv1(this->AsFFI());
143 return result;
144}
145
147 auto result = icu4x::capi::icu4x_IsoDate_is_in_leap_year_mv1(this->AsFFI());
148 return result;
149}
150
151inline uint8_t icu4x::IsoDate::months_in_year() const {
152 auto result = icu4x::capi::icu4x_IsoDate_months_in_year_mv1(this->AsFFI());
153 return result;
154}
155
156inline uint8_t icu4x::IsoDate::days_in_month() const {
157 auto result = icu4x::capi::icu4x_IsoDate_days_in_month_mv1(this->AsFFI());
158 return result;
159}
160
161inline uint16_t icu4x::IsoDate::days_in_year() const {
162 auto result = icu4x::capi::icu4x_IsoDate_days_in_year_mv1(this->AsFFI());
163 return result;
164}
165
167 auto result = icu4x::capi::icu4x_IsoDate_try_add_with_options_mv1(this->AsFFI(),
168 duration.AsFFI(),
169 options.AsFFI());
171}
172
174 auto result = icu4x::capi::icu4x_IsoDate_until_with_options_mv1(this->AsFFI(),
175 other.AsFFI(),
176 options.AsFFI());
177 return icu4x::DateDuration::FromFFI(result);
178}
179
180inline const icu4x::capi::IsoDate* icu4x::IsoDate::AsFFI() const {
181 return reinterpret_cast<const icu4x::capi::IsoDate*>(this);
182}
183
184inline icu4x::capi::IsoDate* icu4x::IsoDate::AsFFI() {
185 return reinterpret_cast<icu4x::capi::IsoDate*>(this);
186}
187
188inline const icu4x::IsoDate* icu4x::IsoDate::FromFFI(const icu4x::capi::IsoDate* ptr) {
189 return reinterpret_cast<const icu4x::IsoDate*>(ptr);
190}
191
192inline icu4x::IsoDate* icu4x::IsoDate::FromFFI(icu4x::capi::IsoDate* ptr) {
193 return reinterpret_cast<icu4x::IsoDate*>(ptr);
194}
195
196inline void icu4x::IsoDate::operator delete(void* ptr) {
197 icu4x::capi::icu4x_IsoDate_destroy_mv1(reinterpret_cast<icu4x::capi::IsoDate*>(ptr));
198}
199
200
201#endif // ICU4X_IsoDate_HPP
Definition CalendarDateAddError.d.hpp:32
Definition CalendarError.d.hpp:32
Definition Calendar.d.hpp:34
Definition IsoDate.d.hpp:44
uint8_t days_in_month() const
Definition IsoDate.hpp:156
static icu4x::diplomat::result< std::unique_ptr< icu4x::IsoDate >, icu4x::CalendarError > create(int32_t year, uint8_t month, uint8_t day)
Definition IsoDate.hpp:78
int32_t year() const
Definition IsoDate.hpp:141
uint8_t month() const
Definition IsoDate.hpp:136
std::unique_ptr< icu4x::Date > to_any() const
Definition IsoDate.hpp:101
bool is_in_leap_year() const
Definition IsoDate.hpp:146
static std::unique_ptr< icu4x::IsoDate > from_rata_die(int64_t rd)
Definition IsoDate.hpp:85
uint8_t day_of_month() const
Definition IsoDate.hpp:116
std::unique_ptr< icu4x::Date > to_calendar(const icu4x::Calendar &calendar) const
Definition IsoDate.hpp:95
static icu4x::diplomat::result< std::unique_ptr< icu4x::IsoDate >, icu4x::Rfc9557ParseError > from_string(std::string_view v)
Definition IsoDate.hpp:90
icu4x::IsoWeekOfYear week_of_year() const
Definition IsoDate.hpp:131
uint16_t day_of_year() const
Definition IsoDate.hpp:111
icu4x::DateDuration until_with_options(const icu4x::IsoDate &other, icu4x::DateDifferenceOptions options) const
Definition IsoDate.hpp:173
uint8_t months_in_year() const
Definition IsoDate.hpp:151
icu4x::Weekday day_of_week() const
Definition IsoDate.hpp:121
icu4x::Weekday weekday() const
Definition IsoDate.hpp:126
icu4x::diplomat::result< std::unique_ptr< icu4x::IsoDate >, icu4x::CalendarDateAddError > try_add_with_options(icu4x::DateDuration duration, icu4x::DateAddOptions options) const
Definition IsoDate.hpp:166
int64_t to_rata_die() const
Definition IsoDate.hpp:106
uint16_t days_in_year() const
Definition IsoDate.hpp:161
Definition Rfc9557ParseError.d.hpp:33
Definition Weekday.d.hpp:35
Definition diplomat_runtime.hpp:166
Definition Bidi.d.hpp:13
Definition DateAddOptions.d.hpp:35
Definition DateDifferenceOptions.d.hpp:35
Definition DateDuration.d.hpp:39
Definition IsoWeekOfYear.d.hpp:31
Definition diplomat_runtime.hpp:146
Definition diplomat_runtime.hpp:128