ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
ICU4XScriptWithExtensions.hpp
Go to the documentation of this file.
1#ifndef ICU4XScriptWithExtensions_HPP
2#define ICU4XScriptWithExtensions_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 "ICU4XScriptWithExtensions.h"
13
16#include "ICU4XError.hpp"
19
23struct ICU4XScriptWithExtensionsDeleter {
24 void operator()(capi::ICU4XScriptWithExtensions* l) const noexcept {
25 capi::ICU4XScriptWithExtensions_destroy(l);
26 }
27};
28
35 public:
36
41
47 uint16_t get_script_val(uint32_t code_point) const;
48
54 bool has_script(uint32_t code_point, uint16_t script) const;
55
64
73 inline const capi::ICU4XScriptWithExtensions* AsFFI() const { return this->inner.get(); }
74 inline capi::ICU4XScriptWithExtensions* AsFFIMut() { return this->inner.get(); }
75 inline explicit ICU4XScriptWithExtensions(capi::ICU4XScriptWithExtensions* i) : inner(i) {}
78 ICU4XScriptWithExtensions& operator=(ICU4XScriptWithExtensions&& other) noexcept = default;
79 private:
80 std::unique_ptr<capi::ICU4XScriptWithExtensions, ICU4XScriptWithExtensionsDeleter> inner;
81};
82
83#include "ICU4XDataProvider.hpp"
86
88 auto diplomat_result_raw_out_value = capi::ICU4XScriptWithExtensions_create(provider.AsFFI());
90 if (diplomat_result_raw_out_value.is_ok) {
91 diplomat_result_out_value = diplomat::Ok<ICU4XScriptWithExtensions>(ICU4XScriptWithExtensions(diplomat_result_raw_out_value.ok));
92 } else {
93 diplomat_result_out_value = diplomat::Err<ICU4XError>(static_cast<ICU4XError>(diplomat_result_raw_out_value.err));
94 }
95 return diplomat_result_out_value;
96}
97inline uint16_t ICU4XScriptWithExtensions::get_script_val(uint32_t code_point) const {
98 return capi::ICU4XScriptWithExtensions_get_script_val(this->inner.get(), code_point);
99}
100inline bool ICU4XScriptWithExtensions::has_script(uint32_t code_point, uint16_t script) const {
101 return capi::ICU4XScriptWithExtensions_has_script(this->inner.get(), code_point, script);
102}
104 return ICU4XScriptWithExtensionsBorrowed(capi::ICU4XScriptWithExtensions_as_borrowed(this->inner.get()));
105}
107 return CodePointRangeIterator(capi::ICU4XScriptWithExtensions_iter_ranges_for_script(this->inner.get(), script));
108}
109#endif
ICU4XError
Definition ICU4XError.hpp:23
Definition CodePointRangeIterator.hpp:29
Definition ICU4XDataProvider.hpp:32
Definition ICU4XScriptWithExtensionsBorrowed.hpp:31
Definition ICU4XScriptWithExtensions.hpp:34
static diplomat::result< ICU4XScriptWithExtensions, ICU4XError > create(const ICU4XDataProvider &provider)
Definition ICU4XScriptWithExtensions.hpp:87
ICU4XScriptWithExtensionsBorrowed as_borrowed() const
Definition ICU4XScriptWithExtensions.hpp:103
ICU4XScriptWithExtensions(capi::ICU4XScriptWithExtensions *i)
Definition ICU4XScriptWithExtensions.hpp:75
bool has_script(uint32_t code_point, uint16_t script) const
Definition ICU4XScriptWithExtensions.hpp:100
ICU4XScriptWithExtensions(ICU4XScriptWithExtensions &&) noexcept=default
ICU4XScriptWithExtensions()=default
CodePointRangeIterator iter_ranges_for_script(uint16_t script) const
Definition ICU4XScriptWithExtensions.hpp:106
uint16_t get_script_val(uint32_t code_point) const
Definition ICU4XScriptWithExtensions.hpp:97
Definition diplomat_runtime.hpp:84
Definition diplomat_runtime.hpp:69
Definition diplomat_runtime.hpp:55