ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
ICU4XCaseMapCloser.hpp
Go to the documentation of this file.
1#ifndef ICU4XCaseMapCloser_HPP
2#define ICU4XCaseMapCloser_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 "ICU4XCaseMapCloser.h"
13
16#include "ICU4XError.hpp"
18
22struct ICU4XCaseMapCloserDeleter {
23 void operator()(capi::ICU4XCaseMapCloser* l) const noexcept {
24 capi::ICU4XCaseMapCloser_destroy(l);
25 }
26};
27
32 public:
33
40
47 void add_case_closure_to(char32_t c, ICU4XCodePointSetBuilder& builder) const;
48
57 bool add_string_case_closure_to(const std::string_view s, ICU4XCodePointSetBuilder& builder) const;
58 inline const capi::ICU4XCaseMapCloser* AsFFI() const { return this->inner.get(); }
59 inline capi::ICU4XCaseMapCloser* AsFFIMut() { return this->inner.get(); }
60 inline explicit ICU4XCaseMapCloser(capi::ICU4XCaseMapCloser* i) : inner(i) {}
61 ICU4XCaseMapCloser() = default;
63 ICU4XCaseMapCloser& operator=(ICU4XCaseMapCloser&& other) noexcept = default;
64 private:
65 std::unique_ptr<capi::ICU4XCaseMapCloser, ICU4XCaseMapCloserDeleter> inner;
66};
67
68#include "ICU4XDataProvider.hpp"
70
72 auto diplomat_result_raw_out_value = capi::ICU4XCaseMapCloser_create(provider.AsFFI());
74 if (diplomat_result_raw_out_value.is_ok) {
75 diplomat_result_out_value = diplomat::Ok<ICU4XCaseMapCloser>(ICU4XCaseMapCloser(diplomat_result_raw_out_value.ok));
76 } else {
77 diplomat_result_out_value = diplomat::Err<ICU4XError>(static_cast<ICU4XError>(diplomat_result_raw_out_value.err));
78 }
79 return diplomat_result_out_value;
80}
82 capi::ICU4XCaseMapCloser_add_case_closure_to(this->inner.get(), c, builder.AsFFIMut());
83}
84inline bool ICU4XCaseMapCloser::add_string_case_closure_to(const std::string_view s, ICU4XCodePointSetBuilder& builder) const {
85 return capi::ICU4XCaseMapCloser_add_string_case_closure_to(this->inner.get(), s.data(), s.size(), builder.AsFFIMut());
86}
87#endif
ICU4XError
Definition ICU4XError.hpp:23
Definition ICU4XCaseMapCloser.hpp:31
void add_case_closure_to(char32_t c, ICU4XCodePointSetBuilder &builder) const
Definition ICU4XCaseMapCloser.hpp:81
ICU4XCaseMapCloser()=default
ICU4XCaseMapCloser(capi::ICU4XCaseMapCloser *i)
Definition ICU4XCaseMapCloser.hpp:60
ICU4XCaseMapCloser(ICU4XCaseMapCloser &&) noexcept=default
static diplomat::result< ICU4XCaseMapCloser, ICU4XError > create(const ICU4XDataProvider &provider)
Definition ICU4XCaseMapCloser.hpp:71
bool add_string_case_closure_to(const std::string_view s, ICU4XCodePointSetBuilder &builder) const
Definition ICU4XCaseMapCloser.hpp:84
Definition ICU4XCodePointSetBuilder.hpp:29
Definition ICU4XDataProvider.hpp:32
Definition diplomat_runtime.hpp:84
Definition diplomat_runtime.hpp:69
Definition diplomat_runtime.hpp:55