ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
LineBreak.d.hpp
Go to the documentation of this file.
1#ifndef ICU4X_LineBreak_D_HPP
2#define ICU4X_LineBreak_D_HPP
3
4#include <stdio.h>
5#include <stdint.h>
6#include <stddef.h>
7#include <stdbool.h>
8#include <memory>
9#include <functional>
10#include <optional>
11#include <cstdlib>
12#include "diplomat_runtime.hpp"
13namespace icu4x {
14class LineBreak;
15} // namespace icu4x
16
17
18
19namespace icu4x {
20namespace capi {
21 enum LineBreak {
22 LineBreak_Unknown = 0,
23 LineBreak_Ambiguous = 1,
24 LineBreak_Alphabetic = 2,
25 LineBreak_BreakBoth = 3,
26 LineBreak_BreakAfter = 4,
27 LineBreak_BreakBefore = 5,
28 LineBreak_MandatoryBreak = 6,
29 LineBreak_ContingentBreak = 7,
30 LineBreak_ClosePunctuation = 8,
31 LineBreak_CombiningMark = 9,
32 LineBreak_CarriageReturn = 10,
33 LineBreak_Exclamation = 11,
34 LineBreak_Glue = 12,
35 LineBreak_Hyphen = 13,
36 LineBreak_Ideographic = 14,
37 LineBreak_Inseparable = 15,
38 LineBreak_InfixNumeric = 16,
39 LineBreak_LineFeed = 17,
40 LineBreak_Nonstarter = 18,
41 LineBreak_Numeric = 19,
42 LineBreak_OpenPunctuation = 20,
43 LineBreak_PostfixNumeric = 21,
44 LineBreak_PrefixNumeric = 22,
45 LineBreak_Quotation = 23,
46 LineBreak_ComplexContext = 24,
47 LineBreak_Surrogate = 25,
48 LineBreak_Space = 26,
49 LineBreak_BreakSymbols = 27,
50 LineBreak_ZWSpace = 28,
51 LineBreak_NextLine = 29,
52 LineBreak_WordJoiner = 30,
53 LineBreak_H2 = 31,
54 LineBreak_H3 = 32,
55 LineBreak_JL = 33,
56 LineBreak_JT = 34,
57 LineBreak_JV = 35,
58 LineBreak_CloseParenthesis = 36,
59 LineBreak_ConditionalJapaneseStarter = 37,
60 LineBreak_HebrewLetter = 38,
61 LineBreak_RegionalIndicator = 39,
62 LineBreak_EBase = 40,
63 LineBreak_EModifier = 41,
64 LineBreak_ZWJ = 42,
65 LineBreak_Aksara = 43,
66 LineBreak_AksaraPrebase = 44,
67 LineBreak_AksaraStart = 45,
68 LineBreak_ViramaFinal = 46,
69 LineBreak_Virama = 47,
70 LineBreak_UnambiguousHyphen = 48,
71 };
72
73 typedef struct LineBreak_option {union { LineBreak ok; }; bool is_ok; } LineBreak_option;
74} // namespace capi
75} // namespace
76
77namespace icu4x {
81class LineBreak {
82public:
134
135 LineBreak(): value(Value::Unknown) {}
136
137 // Implicit conversions between enum and ::Value
138 constexpr LineBreak(Value v) : value(v) {}
139 constexpr operator Value() const { return value; }
140 // Prevent usage as boolean value
141 explicit operator bool() const = delete;
142
146 inline static icu4x::LineBreak for_char(char32_t ch);
147
153 inline std::optional<std::string_view> long_name() const;
154
160 inline std::optional<std::string_view> short_name() const;
161
167 inline uint8_t to_integer_value() const;
168
174 inline static std::optional<icu4x::LineBreak> from_integer_value(uint8_t other);
175
176 inline icu4x::capi::LineBreak AsFFI() const;
177 inline static icu4x::LineBreak FromFFI(icu4x::capi::LineBreak c_enum);
178private:
179 Value value;
180};
181
182} // namespace
183#endif // ICU4X_LineBreak_D_HPP
Definition LineBreak.d.hpp:81
std::optional< std::string_view > long_name() const
Definition LineBreak.hpp:104
static std::optional< icu4x::LineBreak > from_integer_value(uint8_t other)
Definition LineBreak.hpp:119
uint8_t to_integer_value() const
Definition LineBreak.hpp:114
Value
Definition LineBreak.d.hpp:83
@ ZWSpace
Definition LineBreak.d.hpp:112
@ Numeric
Definition LineBreak.d.hpp:103
@ Nonstarter
Definition LineBreak.d.hpp:102
@ BreakSymbols
Definition LineBreak.d.hpp:111
@ AksaraPrebase
Definition LineBreak.d.hpp:128
@ Exclamation
Definition LineBreak.d.hpp:95
@ ZWJ
Definition LineBreak.d.hpp:126
@ CloseParenthesis
Definition LineBreak.d.hpp:120
@ BreakBefore
Definition LineBreak.d.hpp:89
@ AksaraStart
Definition LineBreak.d.hpp:129
@ LineFeed
Definition LineBreak.d.hpp:101
@ Ambiguous
Definition LineBreak.d.hpp:85
@ CombiningMark
Definition LineBreak.d.hpp:93
@ BreakBoth
Definition LineBreak.d.hpp:87
@ Virama
Definition LineBreak.d.hpp:131
@ EBase
Definition LineBreak.d.hpp:124
@ Hyphen
Definition LineBreak.d.hpp:97
@ JL
Definition LineBreak.d.hpp:117
@ H2
Definition LineBreak.d.hpp:115
@ Surrogate
Definition LineBreak.d.hpp:109
@ PostfixNumeric
Definition LineBreak.d.hpp:105
@ UnambiguousHyphen
Definition LineBreak.d.hpp:132
@ H3
Definition LineBreak.d.hpp:116
@ OpenPunctuation
Definition LineBreak.d.hpp:104
@ Glue
Definition LineBreak.d.hpp:96
@ Aksara
Definition LineBreak.d.hpp:127
@ Unknown
Definition LineBreak.d.hpp:84
@ ClosePunctuation
Definition LineBreak.d.hpp:92
@ ComplexContext
Definition LineBreak.d.hpp:108
@ ViramaFinal
Definition LineBreak.d.hpp:130
@ InfixNumeric
Definition LineBreak.d.hpp:100
@ ContingentBreak
Definition LineBreak.d.hpp:91
@ PrefixNumeric
Definition LineBreak.d.hpp:106
@ HebrewLetter
Definition LineBreak.d.hpp:122
@ RegionalIndicator
Definition LineBreak.d.hpp:123
@ CarriageReturn
Definition LineBreak.d.hpp:94
@ BreakAfter
Definition LineBreak.d.hpp:88
@ EModifier
Definition LineBreak.d.hpp:125
@ MandatoryBreak
Definition LineBreak.d.hpp:90
@ NextLine
Definition LineBreak.d.hpp:113
@ JV
Definition LineBreak.d.hpp:119
@ ConditionalJapaneseStarter
Definition LineBreak.d.hpp:121
@ WordJoiner
Definition LineBreak.d.hpp:114
@ Ideographic
Definition LineBreak.d.hpp:98
@ JT
Definition LineBreak.d.hpp:118
@ Inseparable
Definition LineBreak.d.hpp:99
@ Space
Definition LineBreak.d.hpp:110
@ Alphabetic
Definition LineBreak.d.hpp:86
@ Quotation
Definition LineBreak.d.hpp:107
static icu4x::LineBreak for_char(char32_t ch)
Definition LineBreak.hpp:99
std::optional< std::string_view > short_name() const
Definition LineBreak.hpp:109
LineBreak()
Definition LineBreak.d.hpp:135
constexpr LineBreak(Value v)
Definition LineBreak.d.hpp:138
Definition Bidi.d.hpp:13