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