CanonicalComposition.d.hpp (2993B)
1 #ifndef icu4x_CanonicalComposition_D_HPP 2 #define icu4x_CanonicalComposition_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 CanonicalComposition; } 16 class CanonicalComposition; 17 namespace capi { struct DataProvider; } 18 class DataProvider; 19 class DataError; 20 } 21 22 23 namespace icu4x { 24 namespace capi { 25 struct CanonicalComposition; 26 } // namespace capi 27 } // namespace 28 29 namespace icu4x { 30 /** 31 * The raw canonical composition operation. 32 * 33 * Callers should generally use ComposingNormalizer unless they specifically need raw composition operations 34 * 35 * See the [Rust documentation for `CanonicalComposition`](https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalComposition.html) for more information. 36 */ 37 class CanonicalComposition { 38 public: 39 40 /** 41 * Construct a new CanonicalComposition instance for NFC using compiled data. 42 * 43 * See the [Rust documentation for `new`](https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalComposition.html#method.new) for more information. 44 */ 45 inline static std::unique_ptr<icu4x::CanonicalComposition> create(); 46 47 /** 48 * Construct a new CanonicalComposition instance for NFC using a particular data source. 49 * 50 * See the [Rust documentation for `new`](https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalComposition.html#method.new) for more information. 51 */ 52 inline static diplomat::result<std::unique_ptr<icu4x::CanonicalComposition>, icu4x::DataError> create_with_provider(const icu4x::DataProvider& provider); 53 54 /** 55 * Performs canonical composition (including Hangul) on a pair of characters 56 * or returns NUL if these characters don’t compose. Composition exclusions are taken into account. 57 * 58 * See the [Rust documentation for `compose`](https://docs.rs/icu/latest/icu/normalizer/properties/struct.CanonicalCompositionBorrowed.html#method.compose) for more information. 59 */ 60 inline char32_t compose(char32_t starter, char32_t second) const; 61 62 inline const icu4x::capi::CanonicalComposition* AsFFI() const; 63 inline icu4x::capi::CanonicalComposition* AsFFI(); 64 inline static const icu4x::CanonicalComposition* FromFFI(const icu4x::capi::CanonicalComposition* ptr); 65 inline static icu4x::CanonicalComposition* FromFFI(icu4x::capi::CanonicalComposition* ptr); 66 inline static void operator delete(void* ptr); 67 private: 68 CanonicalComposition() = delete; 69 CanonicalComposition(const icu4x::CanonicalComposition&) = delete; 70 CanonicalComposition(icu4x::CanonicalComposition&&) noexcept = delete; 71 CanonicalComposition operator=(const icu4x::CanonicalComposition&) = delete; 72 CanonicalComposition operator=(icu4x::CanonicalComposition&&) noexcept = delete; 73 static void operator delete[](void*, size_t) = delete; 74 }; 75 76 } // namespace 77 #endif // icu4x_CanonicalComposition_D_HPP