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>
13
14namespace icu4x {
15class LineBreak;
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 };
71
72 typedef struct LineBreak_option {union { LineBreak ok; }; bool is_ok; } LineBreak_option;
73} // namespace capi
74} // namespace
75
76namespace icu4x {
80class LineBreak {
81public:
132
133 LineBreak() = default;
134 // Implicit conversions between enum and ::Value
135 constexpr LineBreak(Value v) : value(v) {}
136 constexpr operator Value() const { return value; }
137 // Prevent usage as boolean value
138 explicit operator bool() const = delete;
139
143 inline static icu4x::LineBreak for_char(char32_t ch);
144
150 inline std::optional<std::string_view> long_name() const;
151
157 inline std::optional<std::string_view> short_name() const;
158
164 inline uint8_t to_integer_value() const;
165
171 inline static std::optional<icu4x::LineBreak> from_integer_value(uint8_t other);
172
173 inline icu4x::capi::LineBreak AsFFI() const;
174 inline static icu4x::LineBreak FromFFI(icu4x::capi::LineBreak c_enum);
175private:
176 Value value;
177};
178
179} // namespace
180#endif // icu4x_LineBreak_D_HPP
Definition LineBreak.d.hpp:80
LineBreak()=default
std::optional< std::string_view > long_name() const
Definition LineBreak.hpp:103
static std::optional< icu4x::LineBreak > from_integer_value(uint8_t other)
Definition LineBreak.hpp:118
uint8_t to_integer_value() const
Definition LineBreak.hpp:113
Value
Definition LineBreak.d.hpp:82
@ ZWSpace
Definition LineBreak.d.hpp:111
@ Numeric
Definition LineBreak.d.hpp:102
@ Nonstarter
Definition LineBreak.d.hpp:101
@ BreakSymbols
Definition LineBreak.d.hpp:110
@ AksaraPrebase
Definition LineBreak.d.hpp:127
@ Exclamation
Definition LineBreak.d.hpp:94
@ ZWJ
Definition LineBreak.d.hpp:125
@ CloseParenthesis
Definition LineBreak.d.hpp:119
@ BreakBefore
Definition LineBreak.d.hpp:88
@ AksaraStart
Definition LineBreak.d.hpp:128
@ LineFeed
Definition LineBreak.d.hpp:100
@ Ambiguous
Definition LineBreak.d.hpp:84
@ CombiningMark
Definition LineBreak.d.hpp:92
@ BreakBoth
Definition LineBreak.d.hpp:86
@ Virama
Definition LineBreak.d.hpp:130
@ EBase
Definition LineBreak.d.hpp:123
@ Hyphen
Definition LineBreak.d.hpp:96
@ JL
Definition LineBreak.d.hpp:116
@ H2
Definition LineBreak.d.hpp:114
@ Surrogate
Definition LineBreak.d.hpp:108
@ PostfixNumeric
Definition LineBreak.d.hpp:104
@ H3
Definition LineBreak.d.hpp:115
@ OpenPunctuation
Definition LineBreak.d.hpp:103
@ Glue
Definition LineBreak.d.hpp:95
@ Aksara
Definition LineBreak.d.hpp:126
@ Unknown
Definition LineBreak.d.hpp:83
@ ClosePunctuation
Definition LineBreak.d.hpp:91
@ ComplexContext
Definition LineBreak.d.hpp:107
@ ViramaFinal
Definition LineBreak.d.hpp:129
@ InfixNumeric
Definition LineBreak.d.hpp:99
@ ContingentBreak
Definition LineBreak.d.hpp:90
@ PrefixNumeric
Definition LineBreak.d.hpp:105
@ HebrewLetter
Definition LineBreak.d.hpp:121
@ RegionalIndicator
Definition LineBreak.d.hpp:122
@ CarriageReturn
Definition LineBreak.d.hpp:93
@ BreakAfter
Definition LineBreak.d.hpp:87
@ EModifier
Definition LineBreak.d.hpp:124
@ MandatoryBreak
Definition LineBreak.d.hpp:89
@ NextLine
Definition LineBreak.d.hpp:112
@ JV
Definition LineBreak.d.hpp:118
@ ConditionalJapaneseStarter
Definition LineBreak.d.hpp:120
@ WordJoiner
Definition LineBreak.d.hpp:113
@ Ideographic
Definition LineBreak.d.hpp:97
@ JT
Definition LineBreak.d.hpp:117
@ Inseparable
Definition LineBreak.d.hpp:98
@ Space
Definition LineBreak.d.hpp:109
@ Alphabetic
Definition LineBreak.d.hpp:85
@ Quotation
Definition LineBreak.d.hpp:106
static icu4x::LineBreak for_char(char32_t ch)
Definition LineBreak.hpp:98
std::optional< std::string_view > short_name() const
Definition LineBreak.hpp:108
constexpr LineBreak(Value v)
Definition LineBreak.d.hpp:135
Definition Bidi.d.hpp:14