• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef icu4x_Locale_D_HPP
2 #define icu4x_Locale_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 Locale; }
15 class Locale;
16 class LocaleParseError;
17 }
18 
19 
20 namespace icu4x {
21 namespace capi {
22     struct Locale;
23 } // namespace capi
24 } // namespace
25 
26 namespace icu4x {
27 class Locale {
28 public:
29 
30   inline static diplomat::result<std::unique_ptr<icu4x::Locale>, icu4x::LocaleParseError> from_string(std::string_view name);
31 
32   inline static std::unique_ptr<icu4x::Locale> und();
33 
34   inline std::unique_ptr<icu4x::Locale> clone() const;
35 
36   inline std::string basename() const;
37 
38   inline std::optional<std::string> get_unicode_extension(std::string_view s) const;
39 
40   inline std::string language() const;
41 
42   inline diplomat::result<std::monostate, icu4x::LocaleParseError> set_language(std::string_view s);
43 
44   inline std::optional<std::string> region() const;
45 
46   inline diplomat::result<std::monostate, icu4x::LocaleParseError> set_region(std::string_view s);
47 
48   inline std::optional<std::string> script() const;
49 
50   inline diplomat::result<std::monostate, icu4x::LocaleParseError> set_script(std::string_view s);
51 
52   inline static diplomat::result<std::string, icu4x::LocaleParseError> normalize(std::string_view s);
53 
54   inline std::string to_string() const;
55 
56   inline bool normalizing_eq(std::string_view other) const;
57 
58   inline int8_t compare_to_string(std::string_view other) const;
59 
60   inline int8_t compare_to(const icu4x::Locale& other) const;
61 
62   inline const icu4x::capi::Locale* AsFFI() const;
63   inline icu4x::capi::Locale* AsFFI();
64   inline static const icu4x::Locale* FromFFI(const icu4x::capi::Locale* ptr);
65   inline static icu4x::Locale* FromFFI(icu4x::capi::Locale* ptr);
66   inline static void operator delete(void* ptr);
67 private:
68   Locale() = delete;
69   Locale(const icu4x::Locale&) = delete;
70   Locale(icu4x::Locale&&) noexcept = delete;
71   Locale operator=(const icu4x::Locale&) = delete;
72   Locale operator=(icu4x::Locale&&) noexcept = delete;
73   static void operator delete[](void*, size_t) = delete;
74 };
75 
76 } // namespace
77 #endif // icu4x_Locale_D_HPP
78