1 #ifndef icu4x_ExemplarCharacters_D_HPP 2 #define icu4x_ExemplarCharacters_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 ExemplarCharacters; } 17 class ExemplarCharacters; 18 namespace capi { struct Locale; } 19 class Locale; 20 class DataError; 21 } 22 23 24 namespace icu4x { 25 namespace capi { 26 struct ExemplarCharacters; 27 } // namespace capi 28 } // namespace 29 30 namespace icu4x { 31 class ExemplarCharacters { 32 public: 33 34 inline bool contains(std::string_view s) const; 35 36 inline bool contains(char32_t cp) const; 37 38 inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_main(const icu4x::Locale& locale); 39 40 inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_main_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale); 41 42 inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_auxiliary(const icu4x::Locale& locale); 43 44 inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_auxiliary_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale); 45 46 inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_punctuation(const icu4x::Locale& locale); 47 48 inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_punctuation_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale); 49 50 inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_numbers(const icu4x::Locale& locale); 51 52 inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_numbers_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale); 53 54 inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_index(const icu4x::Locale& locale); 55 56 inline static diplomat::result<std::unique_ptr<icu4x::ExemplarCharacters>, icu4x::DataError> create_index_with_provider(const icu4x::DataProvider& provider, const icu4x::Locale& locale); 57 58 inline const icu4x::capi::ExemplarCharacters* AsFFI() const; 59 inline icu4x::capi::ExemplarCharacters* AsFFI(); 60 inline static const icu4x::ExemplarCharacters* FromFFI(const icu4x::capi::ExemplarCharacters* ptr); 61 inline static icu4x::ExemplarCharacters* FromFFI(icu4x::capi::ExemplarCharacters* ptr); 62 inline static void operator delete(void* ptr); 63 private: 64 ExemplarCharacters() = delete; 65 ExemplarCharacters(const icu4x::ExemplarCharacters&) = delete; 66 ExemplarCharacters(icu4x::ExemplarCharacters&&) noexcept = delete; 67 ExemplarCharacters operator=(const icu4x::ExemplarCharacters&) = delete; 68 ExemplarCharacters operator=(icu4x::ExemplarCharacters&&) noexcept = delete; 69 static void operator delete[](void*, size_t) = delete; 70 }; 71 72 } // namespace 73 #endif // icu4x_ExemplarCharacters_D_HPP 74