1 #ifndef icu4x_CodePointMapData8_D_HPP 2 #define icu4x_CodePointMapData8_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 CodePointMapData8; } 15 class CodePointMapData8; 16 namespace capi { struct CodePointRangeIterator; } 17 class CodePointRangeIterator; 18 namespace capi { struct CodePointSetData; } 19 class CodePointSetData; 20 namespace capi { struct DataProvider; } 21 class DataProvider; 22 struct GeneralCategoryGroup; 23 class DataError; 24 } 25 26 27 namespace icu4x { 28 namespace capi { 29 struct CodePointMapData8; 30 } // namespace capi 31 } // namespace 32 33 namespace icu4x { 34 class CodePointMapData8 { 35 public: 36 37 inline uint8_t get(char32_t cp) const; 38 39 inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_for_value(uint8_t value) const; 40 41 inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_for_value_complemented(uint8_t value) const; 42 43 inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_for_group(icu4x::GeneralCategoryGroup group) const; 44 45 inline std::unique_ptr<icu4x::CodePointSetData> get_set_for_value(uint8_t value) const; 46 47 inline static std::unique_ptr<icu4x::CodePointMapData8> create_general_category(); 48 49 inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_general_category_with_provider(const icu4x::DataProvider& provider); 50 51 inline static std::unique_ptr<icu4x::CodePointMapData8> create_bidi_class(); 52 53 inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_bidi_class_with_provider(const icu4x::DataProvider& provider); 54 55 inline static std::unique_ptr<icu4x::CodePointMapData8> create_east_asian_width(); 56 57 inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_east_asian_width_with_provider(const icu4x::DataProvider& provider); 58 59 inline static std::unique_ptr<icu4x::CodePointMapData8> create_hangul_syllable_type(); 60 61 inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_hangul_syllable_type_with_provider(const icu4x::DataProvider& provider); 62 63 inline static std::unique_ptr<icu4x::CodePointMapData8> create_indic_syllabic_category(); 64 65 inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_indic_syllabic_category_with_provider(const icu4x::DataProvider& provider); 66 67 inline static std::unique_ptr<icu4x::CodePointMapData8> create_line_break(); 68 69 inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_line_break_with_provider(const icu4x::DataProvider& provider); 70 71 inline static std::unique_ptr<icu4x::CodePointMapData8> create_grapheme_cluster_break(); 72 73 inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_grapheme_cluster_break_with_provider(const icu4x::DataProvider& provider); 74 75 inline static std::unique_ptr<icu4x::CodePointMapData8> create_word_break(); 76 77 inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_word_break_with_provider(const icu4x::DataProvider& provider); 78 79 inline static std::unique_ptr<icu4x::CodePointMapData8> create_sentence_break(); 80 81 inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_sentence_break_with_provider(const icu4x::DataProvider& provider); 82 83 inline static std::unique_ptr<icu4x::CodePointMapData8> create_joining_type(); 84 85 inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_joining_type_with_provider(const icu4x::DataProvider& provider); 86 87 inline static std::unique_ptr<icu4x::CodePointMapData8> create_canonical_combining_class(); 88 89 inline static diplomat::result<std::unique_ptr<icu4x::CodePointMapData8>, icu4x::DataError> create_canonical_combining_class_with_provider(const icu4x::DataProvider& provider); 90 91 inline const icu4x::capi::CodePointMapData8* AsFFI() const; 92 inline icu4x::capi::CodePointMapData8* AsFFI(); 93 inline static const icu4x::CodePointMapData8* FromFFI(const icu4x::capi::CodePointMapData8* ptr); 94 inline static icu4x::CodePointMapData8* FromFFI(icu4x::capi::CodePointMapData8* ptr); 95 inline static void operator delete(void* ptr); 96 private: 97 CodePointMapData8() = delete; 98 CodePointMapData8(const icu4x::CodePointMapData8&) = delete; 99 CodePointMapData8(icu4x::CodePointMapData8&&) noexcept = delete; 100 CodePointMapData8 operator=(const icu4x::CodePointMapData8&) = delete; 101 CodePointMapData8 operator=(icu4x::CodePointMapData8&&) noexcept = delete; 102 static void operator delete[](void*, size_t) = delete; 103 }; 104 105 } // namespace 106 #endif // icu4x_CodePointMapData8_D_HPP 107