• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef icu4x_Calendar_D_HPP
2 #define icu4x_Calendar_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 DataProvider; }
17 class DataProvider;
18 namespace capi { struct Locale; }
19 class Locale;
20 class AnyCalendarKind;
21 class DataError;
22 }
23 
24 
25 namespace icu4x {
26 namespace capi {
27     struct Calendar;
28 } // namespace capi
29 } // namespace
30 
31 namespace icu4x {
32 class Calendar {
33 public:
34 
35   inline static diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError> create_for_locale(const icu4x::Locale& locale);
36 
37   inline static diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError> create_for_kind(icu4x::AnyCalendarKind kind);
38 
39   inline static diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError> create_for_locale_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale);
40 
41   inline static diplomat::result<std::unique_ptr<icu4x::Calendar>, icu4x::DataError> create_for_kind_with_provider(const icu4x::DataProvider& provider, icu4x::AnyCalendarKind kind);
42 
43   inline icu4x::AnyCalendarKind kind() const;
44 
45   inline const icu4x::capi::Calendar* AsFFI() const;
46   inline icu4x::capi::Calendar* AsFFI();
47   inline static const icu4x::Calendar* FromFFI(const icu4x::capi::Calendar* ptr);
48   inline static icu4x::Calendar* FromFFI(icu4x::capi::Calendar* ptr);
49   inline static void operator delete(void* ptr);
50 private:
51   Calendar() = delete;
52   Calendar(const icu4x::Calendar&) = delete;
53   Calendar(icu4x::Calendar&&) noexcept = delete;
54   Calendar operator=(const icu4x::Calendar&) = delete;
55   Calendar operator=(icu4x::Calendar&&) noexcept = delete;
56   static void operator delete[](void*, size_t) = delete;
57 };
58 
59 } // namespace
60 #endif // icu4x_Calendar_D_HPP
61