• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef icu4x_UtcOffset_HPP
2 #define icu4x_UtcOffset_HPP
3 
4 #include "UtcOffset.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 "../diplomat_runtime.hpp"
14 #include "TimeZoneInvalidOffsetError.hpp"
15 
16 
17 namespace icu4x {
18 namespace capi {
19     extern "C" {
20 
21     typedef struct icu4x_UtcOffset_from_seconds_mv1_result {union {icu4x::capi::UtcOffset* ok; }; bool is_ok;} icu4x_UtcOffset_from_seconds_mv1_result;
22     icu4x_UtcOffset_from_seconds_mv1_result icu4x_UtcOffset_from_seconds_mv1(int32_t seconds);
23 
24     icu4x::capi::UtcOffset* icu4x_UtcOffset_from_eighths_of_hour_mv1(int8_t eighths_of_hour);
25 
26     typedef struct icu4x_UtcOffset_from_string_mv1_result {union {icu4x::capi::UtcOffset* ok; }; bool is_ok;} icu4x_UtcOffset_from_string_mv1_result;
27     icu4x_UtcOffset_from_string_mv1_result icu4x_UtcOffset_from_string_mv1(diplomat::capi::DiplomatStringView offset);
28 
29     int8_t icu4x_UtcOffset_eighths_of_hour_mv1(const icu4x::capi::UtcOffset* self);
30 
31     int32_t icu4x_UtcOffset_seconds_mv1(const icu4x::capi::UtcOffset* self);
32 
33     bool icu4x_UtcOffset_is_non_negative_mv1(const icu4x::capi::UtcOffset* self);
34 
35     bool icu4x_UtcOffset_is_zero_mv1(const icu4x::capi::UtcOffset* self);
36 
37     int32_t icu4x_UtcOffset_hours_part_mv1(const icu4x::capi::UtcOffset* self);
38 
39     uint32_t icu4x_UtcOffset_minutes_part_mv1(const icu4x::capi::UtcOffset* self);
40 
41     uint32_t icu4x_UtcOffset_seconds_part_mv1(const icu4x::capi::UtcOffset* self);
42 
43 
44     void icu4x_UtcOffset_destroy_mv1(UtcOffset* self);
45 
46     } // extern "C"
47 } // namespace capi
48 } // namespace
49 
from_seconds(int32_t seconds)50 inline diplomat::result<std::unique_ptr<icu4x::UtcOffset>, icu4x::TimeZoneInvalidOffsetError> icu4x::UtcOffset::from_seconds(int32_t seconds) {
51   auto result = icu4x::capi::icu4x_UtcOffset_from_seconds_mv1(seconds);
52   return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::UtcOffset>, icu4x::TimeZoneInvalidOffsetError>(diplomat::Ok<std::unique_ptr<icu4x::UtcOffset>>(std::unique_ptr<icu4x::UtcOffset>(icu4x::UtcOffset::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::UtcOffset>, icu4x::TimeZoneInvalidOffsetError>(diplomat::Err<icu4x::TimeZoneInvalidOffsetError>(icu4x::TimeZoneInvalidOffsetError {}));
53 }
54 
from_eighths_of_hour(int8_t eighths_of_hour)55 inline std::unique_ptr<icu4x::UtcOffset> icu4x::UtcOffset::from_eighths_of_hour(int8_t eighths_of_hour) {
56   auto result = icu4x::capi::icu4x_UtcOffset_from_eighths_of_hour_mv1(eighths_of_hour);
57   return std::unique_ptr<icu4x::UtcOffset>(icu4x::UtcOffset::FromFFI(result));
58 }
59 
from_string(std::string_view offset)60 inline diplomat::result<std::unique_ptr<icu4x::UtcOffset>, icu4x::TimeZoneInvalidOffsetError> icu4x::UtcOffset::from_string(std::string_view offset) {
61   auto result = icu4x::capi::icu4x_UtcOffset_from_string_mv1({offset.data(), offset.size()});
62   return result.is_ok ? diplomat::result<std::unique_ptr<icu4x::UtcOffset>, icu4x::TimeZoneInvalidOffsetError>(diplomat::Ok<std::unique_ptr<icu4x::UtcOffset>>(std::unique_ptr<icu4x::UtcOffset>(icu4x::UtcOffset::FromFFI(result.ok)))) : diplomat::result<std::unique_ptr<icu4x::UtcOffset>, icu4x::TimeZoneInvalidOffsetError>(diplomat::Err<icu4x::TimeZoneInvalidOffsetError>(icu4x::TimeZoneInvalidOffsetError {}));
63 }
64 
eighths_of_hour() const65 inline int8_t icu4x::UtcOffset::eighths_of_hour() const {
66   auto result = icu4x::capi::icu4x_UtcOffset_eighths_of_hour_mv1(this->AsFFI());
67   return result;
68 }
69 
seconds() const70 inline int32_t icu4x::UtcOffset::seconds() const {
71   auto result = icu4x::capi::icu4x_UtcOffset_seconds_mv1(this->AsFFI());
72   return result;
73 }
74 
is_non_negative() const75 inline bool icu4x::UtcOffset::is_non_negative() const {
76   auto result = icu4x::capi::icu4x_UtcOffset_is_non_negative_mv1(this->AsFFI());
77   return result;
78 }
79 
is_zero() const80 inline bool icu4x::UtcOffset::is_zero() const {
81   auto result = icu4x::capi::icu4x_UtcOffset_is_zero_mv1(this->AsFFI());
82   return result;
83 }
84 
hours_part() const85 inline int32_t icu4x::UtcOffset::hours_part() const {
86   auto result = icu4x::capi::icu4x_UtcOffset_hours_part_mv1(this->AsFFI());
87   return result;
88 }
89 
minutes_part() const90 inline uint32_t icu4x::UtcOffset::minutes_part() const {
91   auto result = icu4x::capi::icu4x_UtcOffset_minutes_part_mv1(this->AsFFI());
92   return result;
93 }
94 
seconds_part() const95 inline uint32_t icu4x::UtcOffset::seconds_part() const {
96   auto result = icu4x::capi::icu4x_UtcOffset_seconds_part_mv1(this->AsFFI());
97   return result;
98 }
99 
AsFFI() const100 inline const icu4x::capi::UtcOffset* icu4x::UtcOffset::AsFFI() const {
101   return reinterpret_cast<const icu4x::capi::UtcOffset*>(this);
102 }
103 
AsFFI()104 inline icu4x::capi::UtcOffset* icu4x::UtcOffset::AsFFI() {
105   return reinterpret_cast<icu4x::capi::UtcOffset*>(this);
106 }
107 
FromFFI(const icu4x::capi::UtcOffset * ptr)108 inline const icu4x::UtcOffset* icu4x::UtcOffset::FromFFI(const icu4x::capi::UtcOffset* ptr) {
109   return reinterpret_cast<const icu4x::UtcOffset*>(ptr);
110 }
111 
FromFFI(icu4x::capi::UtcOffset * ptr)112 inline icu4x::UtcOffset* icu4x::UtcOffset::FromFFI(icu4x::capi::UtcOffset* ptr) {
113   return reinterpret_cast<icu4x::UtcOffset*>(ptr);
114 }
115 
operator delete(void * ptr)116 inline void icu4x::UtcOffset::operator delete(void* ptr) {
117   icu4x::capi::icu4x_UtcOffset_destroy_mv1(reinterpret_cast<icu4x::capi::UtcOffset*>(ptr));
118 }
119 
120 
121 #endif // icu4x_UtcOffset_HPP
122