ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
ICU4XCodePointSetBuilder.hpp
Go to the documentation of this file.
1#ifndef ICU4XCodePointSetBuilder_HPP
2#define ICU4XCodePointSetBuilder_HPP
3#include <stdint.h>
4#include <stddef.h>
5#include <stdbool.h>
6#include <algorithm>
7#include <memory>
8#include <variant>
9#include <optional>
10#include "diplomat_runtime.hpp"
11
12#include "ICU4XCodePointSetBuilder.h"
13
16
20struct ICU4XCodePointSetBuilderDeleter {
21 void operator()(capi::ICU4XCodePointSetBuilder* l) const noexcept {
22 capi::ICU4XCodePointSetBuilder_destroy(l);
23 }
24};
25
30 public:
31
38
47
55 void complement();
56
62 bool is_empty() const;
63
69 void add_char(char32_t ch);
70
76 void add_u32(uint32_t ch);
77
83 void add_inclusive_range(char32_t start, char32_t end);
84
90 void add_inclusive_range_u32(uint32_t start, uint32_t end);
91
97 void add_set(const ICU4XCodePointSetData& data);
98
104 void remove_char(char32_t ch);
105
111 void remove_inclusive_range(char32_t start, char32_t end);
112
118 void remove_set(const ICU4XCodePointSetData& data);
119
125 void retain_char(char32_t ch);
126
132 void retain_inclusive_range(char32_t start, char32_t end);
133
139 void retain_set(const ICU4XCodePointSetData& data);
140
148 void complement_char(char32_t ch);
149
157 void complement_inclusive_range(char32_t start, char32_t end);
158
166 void complement_set(const ICU4XCodePointSetData& data);
167 inline const capi::ICU4XCodePointSetBuilder* AsFFI() const { return this->inner.get(); }
168 inline capi::ICU4XCodePointSetBuilder* AsFFIMut() { return this->inner.get(); }
169 inline explicit ICU4XCodePointSetBuilder(capi::ICU4XCodePointSetBuilder* i) : inner(i) {}
172 ICU4XCodePointSetBuilder& operator=(ICU4XCodePointSetBuilder&& other) noexcept = default;
173 private:
174 std::unique_ptr<capi::ICU4XCodePointSetBuilder, ICU4XCodePointSetBuilderDeleter> inner;
175};
176
177#include "ICU4XCodePointSetData.hpp"
178
180 return ICU4XCodePointSetBuilder(capi::ICU4XCodePointSetBuilder_create());
181}
183 return ICU4XCodePointSetData(capi::ICU4XCodePointSetBuilder_build(this->inner.get()));
184}
186 capi::ICU4XCodePointSetBuilder_complement(this->inner.get());
187}
189 return capi::ICU4XCodePointSetBuilder_is_empty(this->inner.get());
190}
191inline void ICU4XCodePointSetBuilder::add_char(char32_t ch) {
192 capi::ICU4XCodePointSetBuilder_add_char(this->inner.get(), ch);
193}
194inline void ICU4XCodePointSetBuilder::add_u32(uint32_t ch) {
195 capi::ICU4XCodePointSetBuilder_add_u32(this->inner.get(), ch);
196}
197inline void ICU4XCodePointSetBuilder::add_inclusive_range(char32_t start, char32_t end) {
198 capi::ICU4XCodePointSetBuilder_add_inclusive_range(this->inner.get(), start, end);
199}
200inline void ICU4XCodePointSetBuilder::add_inclusive_range_u32(uint32_t start, uint32_t end) {
201 capi::ICU4XCodePointSetBuilder_add_inclusive_range_u32(this->inner.get(), start, end);
202}
204 capi::ICU4XCodePointSetBuilder_add_set(this->inner.get(), data.AsFFI());
205}
207 capi::ICU4XCodePointSetBuilder_remove_char(this->inner.get(), ch);
208}
209inline void ICU4XCodePointSetBuilder::remove_inclusive_range(char32_t start, char32_t end) {
210 capi::ICU4XCodePointSetBuilder_remove_inclusive_range(this->inner.get(), start, end);
211}
213 capi::ICU4XCodePointSetBuilder_remove_set(this->inner.get(), data.AsFFI());
214}
216 capi::ICU4XCodePointSetBuilder_retain_char(this->inner.get(), ch);
217}
218inline void ICU4XCodePointSetBuilder::retain_inclusive_range(char32_t start, char32_t end) {
219 capi::ICU4XCodePointSetBuilder_retain_inclusive_range(this->inner.get(), start, end);
220}
222 capi::ICU4XCodePointSetBuilder_retain_set(this->inner.get(), data.AsFFI());
223}
225 capi::ICU4XCodePointSetBuilder_complement_char(this->inner.get(), ch);
226}
227inline void ICU4XCodePointSetBuilder::complement_inclusive_range(char32_t start, char32_t end) {
228 capi::ICU4XCodePointSetBuilder_complement_inclusive_range(this->inner.get(), start, end);
229}
231 capi::ICU4XCodePointSetBuilder_complement_set(this->inner.get(), data.AsFFI());
232}
233#endif
Definition ICU4XCodePointSetBuilder.hpp:29
void complement_char(char32_t ch)
Definition ICU4XCodePointSetBuilder.hpp:224
void add_set(const ICU4XCodePointSetData &data)
Definition ICU4XCodePointSetBuilder.hpp:203
static ICU4XCodePointSetBuilder create()
Definition ICU4XCodePointSetBuilder.hpp:179
ICU4XCodePointSetBuilder(capi::ICU4XCodePointSetBuilder *i)
Definition ICU4XCodePointSetBuilder.hpp:169
void remove_inclusive_range(char32_t start, char32_t end)
Definition ICU4XCodePointSetBuilder.hpp:209
ICU4XCodePointSetBuilder(ICU4XCodePointSetBuilder &&) noexcept=default
void complement_inclusive_range(char32_t start, char32_t end)
Definition ICU4XCodePointSetBuilder.hpp:227
void retain_set(const ICU4XCodePointSetData &data)
Definition ICU4XCodePointSetBuilder.hpp:221
void remove_set(const ICU4XCodePointSetData &data)
Definition ICU4XCodePointSetBuilder.hpp:212
bool is_empty() const
Definition ICU4XCodePointSetBuilder.hpp:188
void add_char(char32_t ch)
Definition ICU4XCodePointSetBuilder.hpp:191
void remove_char(char32_t ch)
Definition ICU4XCodePointSetBuilder.hpp:206
void add_u32(uint32_t ch)
Definition ICU4XCodePointSetBuilder.hpp:194
void add_inclusive_range(char32_t start, char32_t end)
Definition ICU4XCodePointSetBuilder.hpp:197
void retain_inclusive_range(char32_t start, char32_t end)
Definition ICU4XCodePointSetBuilder.hpp:218
ICU4XCodePointSetBuilder()=default
ICU4XCodePointSetData build()
Definition ICU4XCodePointSetBuilder.hpp:182
void add_inclusive_range_u32(uint32_t start, uint32_t end)
Definition ICU4XCodePointSetBuilder.hpp:200
void complement_set(const ICU4XCodePointSetData &data)
Definition ICU4XCodePointSetBuilder.hpp:230
void complement()
Definition ICU4XCodePointSetBuilder.hpp:185
void retain_char(char32_t ch)
Definition ICU4XCodePointSetBuilder.hpp:215
Definition ICU4XCodePointSetData.hpp:37