ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
TimeZoneInfo.d.hpp
Go to the documentation of this file.
1#ifndef icu4x_TimeZoneInfo_D_HPP
2#define icu4x_TimeZoneInfo_D_HPP
3
4#include <stdio.h>
5#include <stdint.h>
6#include <stddef.h>
7#include <stdbool.h>
8#include <memory>
9#include <functional>
10#include <optional>
11#include <cstdlib>
13
14namespace icu4x {
15namespace capi { struct IsoDate; }
16class IsoDate;
17namespace capi { struct Time; }
18class Time;
19namespace capi { struct TimeZone; }
20class TimeZone;
21namespace capi { struct TimeZoneInfo; }
22class TimeZoneInfo;
23namespace capi { struct UtcOffset; }
24class UtcOffset;
25namespace capi { struct VariantOffsetsCalculator; }
27struct IsoDateTime;
28class TimeZoneVariant;
29}
30
31
32namespace icu4x {
33namespace capi {
34 struct TimeZoneInfo;
35} // namespace capi
36} // namespace
37
38namespace icu4x {
42class TimeZoneInfo {
43public:
44
50 inline static std::unique_ptr<icu4x::TimeZoneInfo> utc();
51
55 inline static std::unique_ptr<icu4x::TimeZoneInfo> from_parts(const icu4x::TimeZone& id, const icu4x::UtcOffset* offset, std::optional<icu4x::TimeZoneVariant> variant);
56
60 inline std::unique_ptr<icu4x::TimeZone> id() const;
61
76 inline std::unique_ptr<icu4x::TimeZoneInfo> at_date_time_iso(const icu4x::IsoDate& date, const icu4x::Time& time) const;
77
81 inline std::optional<icu4x::IsoDateTime> zone_name_date_time() const;
82
86 inline std::unique_ptr<icu4x::TimeZoneInfo> with_variant(icu4x::TimeZoneVariant time_variant) const;
87
97 inline std::optional<std::monostate> infer_variant(const icu4x::VariantOffsetsCalculator& offset_calculator);
98
102 inline std::optional<icu4x::TimeZoneVariant> variant() const;
103
104 inline const icu4x::capi::TimeZoneInfo* AsFFI() const;
105 inline icu4x::capi::TimeZoneInfo* AsFFI();
106 inline static const icu4x::TimeZoneInfo* FromFFI(const icu4x::capi::TimeZoneInfo* ptr);
107 inline static icu4x::TimeZoneInfo* FromFFI(icu4x::capi::TimeZoneInfo* ptr);
108 inline static void operator delete(void* ptr);
109private:
110 TimeZoneInfo() = delete;
111 TimeZoneInfo(const icu4x::TimeZoneInfo&) = delete;
112 TimeZoneInfo(icu4x::TimeZoneInfo&&) noexcept = delete;
113 TimeZoneInfo operator=(const icu4x::TimeZoneInfo&) = delete;
114 TimeZoneInfo operator=(icu4x::TimeZoneInfo&&) noexcept = delete;
115 static void operator delete[](void*, size_t) = delete;
116};
117
118} // namespace
119#endif // icu4x_TimeZoneInfo_D_HPP
Definition IsoDate.d.hpp:40
Definition TimeZoneInfo.d.hpp:42
std::optional< icu4x::TimeZoneVariant > variant() const
Definition TimeZoneInfo.hpp:94
static std::unique_ptr< icu4x::TimeZoneInfo > from_parts(const icu4x::TimeZone &id, const icu4x::UtcOffset *offset, std::optional< icu4x::TimeZoneVariant > variant)
Definition TimeZoneInfo.hpp:58
std::unique_ptr< icu4x::TimeZoneInfo > at_date_time_iso(const icu4x::IsoDate &date, const icu4x::Time &time) const
Definition TimeZoneInfo.hpp:70
std::unique_ptr< icu4x::TimeZoneInfo > with_variant(icu4x::TimeZoneVariant time_variant) const
Definition TimeZoneInfo.hpp:82
std::unique_ptr< icu4x::TimeZone > id() const
Definition TimeZoneInfo.hpp:65
std::optional< icu4x::IsoDateTime > zone_name_date_time() const
Definition TimeZoneInfo.hpp:77
static std::unique_ptr< icu4x::TimeZoneInfo > utc()
Definition TimeZoneInfo.hpp:53
std::optional< std::monostate > infer_variant(const icu4x::VariantOffsetsCalculator &offset_calculator)
Definition TimeZoneInfo.hpp:88
Definition TimeZoneVariant.d.hpp:31
Definition TimeZone.d.hpp:34
Definition Time.d.hpp:34
Definition UtcOffset.d.hpp:31
Definition VariantOffsetsCalculator.d.hpp:40
Definition Bidi.d.hpp:14
Definition IsoDateTime.d.hpp:42