• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef icu4x_DateTime_D_HPP
2 #define icu4x_DateTime_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 Calendar; }
15 class Calendar;
16 namespace capi { struct Date; }
17 class Date;
18 namespace capi { struct Time; }
19 class Time;
20 struct DateTime;
21 class CalendarParseError;
22 }
23 
24 
25 namespace icu4x {
26 namespace capi {
27     struct DateTime {
28       icu4x::capi::Date* date;
29       icu4x::capi::Time* time;
30     };
31 
32     typedef struct DateTime_option {union { DateTime ok; }; bool is_ok; } DateTime_option;
33 } // namespace capi
34 } // namespace
35 
36 
37 namespace icu4x {
38 struct DateTime {
39   std::unique_ptr<icu4x::Date> date;
40   std::unique_ptr<icu4x::Time> time;
41 
42   inline static diplomat::result<icu4x::DateTime, icu4x::CalendarParseError> from_string(std::string_view v, const icu4x::Calendar& calendar);
43 
44   inline icu4x::capi::DateTime AsFFI() const;
45   inline static icu4x::DateTime FromFFI(icu4x::capi::DateTime c_struct);
46 };
47 
48 } // namespace
49 #endif // icu4x_DateTime_D_HPP
50