1 #ifndef icu4x_DecomposingNormalizer_D_HPP 2 #define icu4x_DecomposingNormalizer_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 DecomposingNormalizer; } 17 class DecomposingNormalizer; 18 class DataError; 19 } 20 21 22 namespace icu4x { 23 namespace capi { 24 struct DecomposingNormalizer; 25 } // namespace capi 26 } // namespace 27 28 namespace icu4x { 29 class DecomposingNormalizer { 30 public: 31 32 inline static std::unique_ptr<icu4x::DecomposingNormalizer> create_nfd(); 33 34 inline static diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError> create_nfd_with_provider(const icu4x::DataProvider& provider); 35 36 inline static std::unique_ptr<icu4x::DecomposingNormalizer> create_nfkd(); 37 38 inline static diplomat::result<std::unique_ptr<icu4x::DecomposingNormalizer>, icu4x::DataError> create_nfkd_with_provider(const icu4x::DataProvider& provider); 39 40 inline std::string normalize(std::string_view s) const; 41 42 inline bool is_normalized(std::string_view s) const; 43 44 inline bool is_normalized_utf16(std::u16string_view s) const; 45 46 inline size_t is_normalized_up_to(std::string_view s) const; 47 48 inline size_t is_normalized_utf16_up_to(std::u16string_view s) const; 49 50 inline const icu4x::capi::DecomposingNormalizer* AsFFI() const; 51 inline icu4x::capi::DecomposingNormalizer* AsFFI(); 52 inline static const icu4x::DecomposingNormalizer* FromFFI(const icu4x::capi::DecomposingNormalizer* ptr); 53 inline static icu4x::DecomposingNormalizer* FromFFI(icu4x::capi::DecomposingNormalizer* ptr); 54 inline static void operator delete(void* ptr); 55 private: 56 DecomposingNormalizer() = delete; 57 DecomposingNormalizer(const icu4x::DecomposingNormalizer&) = delete; 58 DecomposingNormalizer(icu4x::DecomposingNormalizer&&) noexcept = delete; 59 DecomposingNormalizer operator=(const icu4x::DecomposingNormalizer&) = delete; 60 DecomposingNormalizer operator=(icu4x::DecomposingNormalizer&&) noexcept = delete; 61 static void operator delete[](void*, size_t) = delete; 62 }; 63 64 } // namespace 65 #endif // icu4x_DecomposingNormalizer_D_HPP 66