ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
GraphemeClusterBreak.hpp
Go to the documentation of this file.
1#ifndef icu4x_GraphemeClusterBreak_HPP
2#define icu4x_GraphemeClusterBreak_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>
15
16
17namespace icu4x {
18namespace capi {
19 extern "C" {
20
21 icu4x::capi::GraphemeClusterBreak icu4x_GraphemeClusterBreak_for_char_mv1(char32_t ch);
22
23 uint8_t icu4x_GraphemeClusterBreak_to_integer_value_mv1(icu4x::capi::GraphemeClusterBreak self);
24
25 typedef struct icu4x_GraphemeClusterBreak_from_integer_value_mv1_result {union {icu4x::capi::GraphemeClusterBreak ok; }; bool is_ok;} icu4x_GraphemeClusterBreak_from_integer_value_mv1_result;
26 icu4x_GraphemeClusterBreak_from_integer_value_mv1_result icu4x_GraphemeClusterBreak_from_integer_value_mv1(uint8_t other);
27
28 } // extern "C"
29} // namespace capi
30} // namespace
31
32inline icu4x::capi::GraphemeClusterBreak icu4x::GraphemeClusterBreak::AsFFI() const {
33 return static_cast<icu4x::capi::GraphemeClusterBreak>(value);
34}
35
36inline icu4x::GraphemeClusterBreak icu4x::GraphemeClusterBreak::FromFFI(icu4x::capi::GraphemeClusterBreak c_enum) {
37 switch (c_enum) {
38 case icu4x::capi::GraphemeClusterBreak_Other:
39 case icu4x::capi::GraphemeClusterBreak_Control:
40 case icu4x::capi::GraphemeClusterBreak_CR:
41 case icu4x::capi::GraphemeClusterBreak_Extend:
42 case icu4x::capi::GraphemeClusterBreak_L:
43 case icu4x::capi::GraphemeClusterBreak_LF:
44 case icu4x::capi::GraphemeClusterBreak_LV:
45 case icu4x::capi::GraphemeClusterBreak_LVT:
46 case icu4x::capi::GraphemeClusterBreak_T:
47 case icu4x::capi::GraphemeClusterBreak_V:
48 case icu4x::capi::GraphemeClusterBreak_SpacingMark:
49 case icu4x::capi::GraphemeClusterBreak_Prepend:
50 case icu4x::capi::GraphemeClusterBreak_RegionalIndicator:
51 case icu4x::capi::GraphemeClusterBreak_EBase:
52 case icu4x::capi::GraphemeClusterBreak_EBaseGAZ:
53 case icu4x::capi::GraphemeClusterBreak_EModifier:
54 case icu4x::capi::GraphemeClusterBreak_GlueAfterZwj:
55 case icu4x::capi::GraphemeClusterBreak_ZWJ:
56 return static_cast<icu4x::GraphemeClusterBreak::Value>(c_enum);
57 default:
58 std::abort();
59 }
60}
61
63 auto result = icu4x::capi::icu4x_GraphemeClusterBreak_for_char_mv1(ch);
64 return icu4x::GraphemeClusterBreak::FromFFI(result);
65}
66
68 auto result = icu4x::capi::icu4x_GraphemeClusterBreak_to_integer_value_mv1(this->AsFFI());
69 return result;
70}
71
72inline std::optional<icu4x::GraphemeClusterBreak> icu4x::GraphemeClusterBreak::from_integer_value(uint8_t other) {
73 auto result = icu4x::capi::icu4x_GraphemeClusterBreak_from_integer_value_mv1(other);
74 return result.is_ok ? std::optional<icu4x::GraphemeClusterBreak>(icu4x::GraphemeClusterBreak::FromFFI(result.ok)) : std::nullopt;
75}
76#endif // icu4x_GraphemeClusterBreak_HPP
Definition GraphemeClusterBreak.d.hpp:50
static icu4x::GraphemeClusterBreak for_char(char32_t ch)
Definition GraphemeClusterBreak.hpp:62
uint8_t to_integer_value() const
Definition GraphemeClusterBreak.hpp:67
Value
Definition GraphemeClusterBreak.d.hpp:52
static std::optional< icu4x::GraphemeClusterBreak > from_integer_value(uint8_t other)
Definition GraphemeClusterBreak.hpp:72
Definition Bidi.d.hpp:14