ScriptWithExtensions.d.hpp (4123B)
1 #ifndef icu4x_ScriptWithExtensions_D_HPP 2 #define icu4x_ScriptWithExtensions_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 <cstdlib> 12 #include "../diplomat_runtime.hpp" 13 14 namespace icu4x { 15 namespace capi { struct CodePointRangeIterator; } 16 class CodePointRangeIterator; 17 namespace capi { struct DataProvider; } 18 class DataProvider; 19 namespace capi { struct ScriptWithExtensions; } 20 class ScriptWithExtensions; 21 namespace capi { struct ScriptWithExtensionsBorrowed; } 22 class ScriptWithExtensionsBorrowed; 23 class DataError; 24 } 25 26 27 namespace icu4x { 28 namespace capi { 29 struct ScriptWithExtensions; 30 } // namespace capi 31 } // namespace 32 33 namespace icu4x { 34 /** 35 * An ICU4X ScriptWithExtensions map object, capable of holding a map of codepoints to scriptextensions values 36 * 37 * See the [Rust documentation for `ScriptWithExtensions`](https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensions.html) for more information. 38 */ 39 class ScriptWithExtensions { 40 public: 41 42 /** 43 * Create a map for the `Script`/`Script_Extensions` properties, using compiled data. 44 * 45 * See the [Rust documentation for `new`](https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensions.html#method.new) for more information. 46 */ 47 inline static std::unique_ptr<icu4x::ScriptWithExtensions> create(); 48 49 /** 50 * Create a map for the `Script`/`Script_Extensions` properties, using compiled data. 51 * 52 * See the [Rust documentation for `new`](https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensions.html#method.new) for more information. 53 */ 54 inline static diplomat::result<std::unique_ptr<icu4x::ScriptWithExtensions>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider); 55 56 /** 57 * Get the Script property value for a code point 58 * 59 * See the [Rust documentation for `get_script_val`](https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensionsBorrowed.html#method.get_script_val) for more information. 60 */ 61 inline uint16_t get_script_val(char32_t ch) const; 62 63 /** 64 * Check if the Script_Extensions property of the given code point covers the given script 65 * 66 * See the [Rust documentation for `has_script`](https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensionsBorrowed.html#method.has_script) for more information. 67 */ 68 inline bool has_script(char32_t ch, uint16_t script) const; 69 70 /** 71 * Borrow this object for a slightly faster variant with more operations 72 * 73 * See the [Rust documentation for `as_borrowed`](https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensions.html#method.as_borrowed) for more information. 74 */ 75 inline std::unique_ptr<icu4x::ScriptWithExtensionsBorrowed> as_borrowed() const; 76 77 /** 78 * Get a list of ranges of code points that contain this script in their Script_Extensions values 79 * 80 * See the [Rust documentation for `get_script_extensions_ranges`](https://docs.rs/icu/latest/icu/properties/script/struct.ScriptWithExtensionsBorrowed.html#method.get_script_extensions_ranges) for more information. 81 */ 82 inline std::unique_ptr<icu4x::CodePointRangeIterator> iter_ranges_for_script(uint16_t script) const; 83 84 inline const icu4x::capi::ScriptWithExtensions* AsFFI() const; 85 inline icu4x::capi::ScriptWithExtensions* AsFFI(); 86 inline static const icu4x::ScriptWithExtensions* FromFFI(const icu4x::capi::ScriptWithExtensions* ptr); 87 inline static icu4x::ScriptWithExtensions* FromFFI(icu4x::capi::ScriptWithExtensions* ptr); 88 inline static void operator delete(void* ptr); 89 private: 90 ScriptWithExtensions() = delete; 91 ScriptWithExtensions(const icu4x::ScriptWithExtensions&) = delete; 92 ScriptWithExtensions(icu4x::ScriptWithExtensions&&) noexcept = delete; 93 ScriptWithExtensions operator=(const icu4x::ScriptWithExtensions&) = delete; 94 ScriptWithExtensions operator=(icu4x::ScriptWithExtensions&&) noexcept = delete; 95 static void operator delete[](void*, size_t) = delete; 96 }; 97 98 } // namespace 99 #endif // icu4x_ScriptWithExtensions_D_HPP