• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef icu4x_ZonedIsoDateTime_D_HPP
2 #define icu4x_ZonedIsoDateTime_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 "../diplomat_runtime.hpp"
12 
13 namespace icu4x {
14 namespace capi { struct IanaParser; }
15 class IanaParser;
16 namespace capi { struct IsoDate; }
17 class IsoDate;
18 namespace capi { struct Time; }
19 class Time;
20 namespace capi { struct TimeZoneInfo; }
21 class TimeZoneInfo;
22 namespace capi { struct UtcOffsetCalculator; }
23 class UtcOffsetCalculator;
24 struct ZonedIsoDateTime;
25 class CalendarParseError;
26 }
27 
28 
29 namespace icu4x {
30 namespace capi {
31     struct ZonedIsoDateTime {
32       icu4x::capi::IsoDate* date;
33       icu4x::capi::Time* time;
34       icu4x::capi::TimeZoneInfo* zone;
35     };
36 
37     typedef struct ZonedIsoDateTime_option {union { ZonedIsoDateTime ok; }; bool is_ok; } ZonedIsoDateTime_option;
38 } // namespace capi
39 } // namespace
40 
41 
42 namespace icu4x {
43 struct ZonedIsoDateTime {
44   std::unique_ptr<icu4x::IsoDate> date;
45   std::unique_ptr<icu4x::Time> time;
46   std::unique_ptr<icu4x::TimeZoneInfo> zone;
47 
48   inline static diplomat::result<icu4x::ZonedIsoDateTime, icu4x::CalendarParseError> from_string(std::string_view v, const icu4x::IanaParser& iana_parser, const icu4x::UtcOffsetCalculator& offset_calculator);
49 
50   inline icu4x::capi::ZonedIsoDateTime AsFFI() const;
51   inline static icu4x::ZonedIsoDateTime FromFFI(icu4x::capi::ZonedIsoDateTime c_struct);
52 };
53 
54 } // namespace
55 #endif // icu4x_ZonedIsoDateTime_D_HPP
56