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