ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
ComposingNormalizer.hpp
Go to the documentation of this file.
1#ifndef ICU4X_ComposingNormalizer_HPP
2#define ICU4X_ComposingNormalizer_HPP
3
5
6#include <stdio.h>
7#include <stdint.h>
8#include <stddef.h>
9#include <stdbool.h>
10#include <memory>
11#include <functional>
12#include <optional>
13#include <cstdlib>
14#include "DataError.hpp"
15#include "DataProvider.hpp"
16#include "diplomat_runtime.hpp"
17
18
19namespace icu4x {
20namespace capi {
21 extern "C" {
22
23 icu4x::capi::ComposingNormalizer* icu4x_ComposingNormalizer_create_nfc_mv1(void);
24
25 typedef struct icu4x_ComposingNormalizer_create_nfc_with_provider_mv1_result {union {icu4x::capi::ComposingNormalizer* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ComposingNormalizer_create_nfc_with_provider_mv1_result;
26 icu4x_ComposingNormalizer_create_nfc_with_provider_mv1_result icu4x_ComposingNormalizer_create_nfc_with_provider_mv1(const icu4x::capi::DataProvider* provider);
27
28 icu4x::capi::ComposingNormalizer* icu4x_ComposingNormalizer_create_nfkc_mv1(void);
29
30 typedef struct icu4x_ComposingNormalizer_create_nfkc_with_provider_mv1_result {union {icu4x::capi::ComposingNormalizer* ok; icu4x::capi::DataError err;}; bool is_ok;} icu4x_ComposingNormalizer_create_nfkc_with_provider_mv1_result;
31 icu4x_ComposingNormalizer_create_nfkc_with_provider_mv1_result icu4x_ComposingNormalizer_create_nfkc_with_provider_mv1(const icu4x::capi::DataProvider* provider);
32
33 void icu4x_ComposingNormalizer_normalize_mv1(const icu4x::capi::ComposingNormalizer* self, icu4x::diplomat::capi::DiplomatStringView s, icu4x::diplomat::capi::DiplomatWrite* write);
34
35 void icu4x_ComposingNormalizer_normalize_utf16_mv1(const icu4x::capi::ComposingNormalizer* self, icu4x::diplomat::capi::DiplomatString16View s, icu4x::diplomat::capi::DiplomatWrite* write);
36
37 bool icu4x_ComposingNormalizer_is_normalized_utf8_mv1(const icu4x::capi::ComposingNormalizer* self, icu4x::diplomat::capi::DiplomatStringView s);
38
39 bool icu4x_ComposingNormalizer_is_normalized_utf16_mv1(const icu4x::capi::ComposingNormalizer* self, icu4x::diplomat::capi::DiplomatString16View s);
40
41 size_t icu4x_ComposingNormalizer_is_normalized_utf8_up_to_mv1(const icu4x::capi::ComposingNormalizer* self, icu4x::diplomat::capi::DiplomatStringView s);
42
43 size_t icu4x_ComposingNormalizer_is_normalized_utf16_up_to_mv1(const icu4x::capi::ComposingNormalizer* self, icu4x::diplomat::capi::DiplomatString16View s);
44
45 void icu4x_ComposingNormalizer_destroy_mv1(ComposingNormalizer* self);
46
47 } // extern "C"
48} // namespace capi
49} // namespace
50
51inline std::unique_ptr<icu4x::ComposingNormalizer> icu4x::ComposingNormalizer::create_nfc() {
52 auto result = icu4x::capi::icu4x_ComposingNormalizer_create_nfc_mv1();
53 return std::unique_ptr<icu4x::ComposingNormalizer>(icu4x::ComposingNormalizer::FromFFI(result));
54}
55
57 auto result = icu4x::capi::icu4x_ComposingNormalizer_create_nfc_with_provider_mv1(provider.AsFFI());
59}
60
61inline std::unique_ptr<icu4x::ComposingNormalizer> icu4x::ComposingNormalizer::create_nfkc() {
62 auto result = icu4x::capi::icu4x_ComposingNormalizer_create_nfkc_mv1();
63 return std::unique_ptr<icu4x::ComposingNormalizer>(icu4x::ComposingNormalizer::FromFFI(result));
64}
65
67 auto result = icu4x::capi::icu4x_ComposingNormalizer_create_nfkc_with_provider_mv1(provider.AsFFI());
69}
70
71inline std::string icu4x::ComposingNormalizer::normalize(std::string_view s) const {
72 std::string output;
73 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
74 icu4x::capi::icu4x_ComposingNormalizer_normalize_mv1(this->AsFFI(),
75 {s.data(), s.size()},
76 &write);
77 return output;
78}
79template<typename W>
80inline void icu4x::ComposingNormalizer::normalize_write(std::string_view s, W& writeable) const {
81 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
82 icu4x::capi::icu4x_ComposingNormalizer_normalize_mv1(this->AsFFI(),
83 {s.data(), s.size()},
84 &write);
85}
86
87inline std::u16string icu4x::ComposingNormalizer::normalize16(std::u16string_view s) const {
88 std::u16string output;
89 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString16(output);
90 icu4x::capi::icu4x_ComposingNormalizer_normalize_utf16_mv1(this->AsFFI(),
91 {s.data(), s.size()},
92 &write);
93 return output;
94}
95template<typename W>
96inline void icu4x::ComposingNormalizer::normalize16_write(std::u16string_view s, W& writeable) const {
97 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteTrait<W>::Construct(writeable);
98 icu4x::capi::icu4x_ComposingNormalizer_normalize_utf16_mv1(this->AsFFI(),
99 {s.data(), s.size()},
100 &write);
101}
102
103inline bool icu4x::ComposingNormalizer::is_normalized(std::string_view s) const {
104 auto result = icu4x::capi::icu4x_ComposingNormalizer_is_normalized_utf8_mv1(this->AsFFI(),
105 {s.data(), s.size()});
106 return result;
107}
108
109inline bool icu4x::ComposingNormalizer::is_normalized16(std::u16string_view s) const {
110 auto result = icu4x::capi::icu4x_ComposingNormalizer_is_normalized_utf16_mv1(this->AsFFI(),
111 {s.data(), s.size()});
112 return result;
113}
114
115inline size_t icu4x::ComposingNormalizer::is_normalized_up_to(std::string_view s) const {
116 auto result = icu4x::capi::icu4x_ComposingNormalizer_is_normalized_utf8_up_to_mv1(this->AsFFI(),
117 {s.data(), s.size()});
118 return result;
119}
120
121inline size_t icu4x::ComposingNormalizer::is_normalized16_up_to(std::u16string_view s) const {
122 auto result = icu4x::capi::icu4x_ComposingNormalizer_is_normalized_utf16_up_to_mv1(this->AsFFI(),
123 {s.data(), s.size()});
124 return result;
125}
126
127inline const icu4x::capi::ComposingNormalizer* icu4x::ComposingNormalizer::AsFFI() const {
128 return reinterpret_cast<const icu4x::capi::ComposingNormalizer*>(this);
129}
130
131inline icu4x::capi::ComposingNormalizer* icu4x::ComposingNormalizer::AsFFI() {
132 return reinterpret_cast<icu4x::capi::ComposingNormalizer*>(this);
133}
134
135inline const icu4x::ComposingNormalizer* icu4x::ComposingNormalizer::FromFFI(const icu4x::capi::ComposingNormalizer* ptr) {
136 return reinterpret_cast<const icu4x::ComposingNormalizer*>(ptr);
137}
138
139inline icu4x::ComposingNormalizer* icu4x::ComposingNormalizer::FromFFI(icu4x::capi::ComposingNormalizer* ptr) {
140 return reinterpret_cast<icu4x::ComposingNormalizer*>(ptr);
141}
142
143inline void icu4x::ComposingNormalizer::operator delete(void* ptr) {
144 icu4x::capi::icu4x_ComposingNormalizer_destroy_mv1(reinterpret_cast<icu4x::capi::ComposingNormalizer*>(ptr));
145}
146
147
148#endif // ICU4X_ComposingNormalizer_HPP
Definition ComposingNormalizer.d.hpp:33
static std::unique_ptr< icu4x::ComposingNormalizer > create_nfkc()
Definition ComposingNormalizer.hpp:61
void normalize16_write(std::u16string_view s, W &writeable_output) const
Definition ComposingNormalizer.hpp:96
std::u16string normalize16(std::u16string_view s) const
Definition ComposingNormalizer.hpp:87
void normalize_write(std::string_view s, W &writeable_output) const
Definition ComposingNormalizer.hpp:80
size_t is_normalized_up_to(std::string_view s) const
Definition ComposingNormalizer.hpp:115
size_t is_normalized16_up_to(std::u16string_view s) const
Definition ComposingNormalizer.hpp:121
bool is_normalized16(std::u16string_view s) const
Definition ComposingNormalizer.hpp:109
static icu4x::diplomat::result< std::unique_ptr< icu4x::ComposingNormalizer >, icu4x::DataError > create_nfc_with_provider(const icu4x::DataProvider &provider)
Definition ComposingNormalizer.hpp:56
static std::unique_ptr< icu4x::ComposingNormalizer > create_nfc()
Definition ComposingNormalizer.hpp:51
std::string normalize(std::string_view s) const
Definition ComposingNormalizer.hpp:71
bool is_normalized(std::string_view s) const
Definition ComposingNormalizer.hpp:103
static icu4x::diplomat::result< std::unique_ptr< icu4x::ComposingNormalizer >, icu4x::DataError > create_nfkc_with_provider(const icu4x::DataProvider &provider)
Definition ComposingNormalizer.hpp:66
Definition DataError.d.hpp:37
Definition DataProvider.d.hpp:40
capi::DiplomatWrite WriteFromString16(std::u16string &string)
Definition diplomat_runtime.hpp:149
Definition Bidi.d.hpp:13
Definition diplomat_runtime.hpp:243
Definition diplomat_runtime.hpp:202