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:
281
282 LineBreak(): value(Value::Unknown) {}
283
284 // Implicit conversions between enum and ::Value
285 constexpr LineBreak(Value v) : value(v) {}
286 constexpr operator Value() const { return value; }
287 // Prevent usage as boolean value
288 explicit operator bool() const = delete;
289
293 inline static icu4x::LineBreak for_char(char32_t ch);
294
300 inline std::optional<std::string_view> long_name() const;
301
307 inline std::optional<std::string_view> short_name() const;
308
314 inline uint8_t to_integer_value() const;
315
321 inline static std::optional<icu4x::LineBreak> from_integer_value(uint8_t other);
322
323 inline static std::optional<icu4x::LineBreak> try_from_str(std::string_view s);
324
325 inline icu4x::capi::LineBreak AsFFI() const;
326 inline static icu4x::LineBreak FromFFI(icu4x::capi::LineBreak c_enum);
327private:
328 Value value;
329};
330
331} // namespace
332#endif // ICU4X_LineBreak_D_HPP
Definition LineBreak.d.hpp:81
std::optional< std::string_view > long_name() const
Definition LineBreak.hpp:107
static std::optional< icu4x::LineBreak > try_from_str(std::string_view s)
Definition LineBreak.hpp:127
static std::optional< icu4x::LineBreak > from_integer_value(uint8_t other)
Definition LineBreak.hpp:122
uint8_t to_integer_value() const
Definition LineBreak.hpp:117
Value
Definition LineBreak.d.hpp:83
@ ZWSpace
Definition LineBreak.d.hpp:199
@ Numeric
Definition LineBreak.d.hpp:163
@ Nonstarter
Definition LineBreak.d.hpp:159
@ BreakSymbols
Definition LineBreak.d.hpp:195
@ AksaraPrebase
Definition LineBreak.d.hpp:263
@ Exclamation
Definition LineBreak.d.hpp:131
@ ZWJ
Definition LineBreak.d.hpp:255
@ CloseParenthesis
Definition LineBreak.d.hpp:231
@ BreakBefore
Definition LineBreak.d.hpp:107
@ AksaraStart
Definition LineBreak.d.hpp:267
@ LineFeed
Definition LineBreak.d.hpp:155
@ Ambiguous
Definition LineBreak.d.hpp:91
@ CombiningMark
Definition LineBreak.d.hpp:123
@ BreakBoth
Definition LineBreak.d.hpp:99
@ Virama
Definition LineBreak.d.hpp:275
@ EBase
Definition LineBreak.d.hpp:247
@ Hyphen
Definition LineBreak.d.hpp:139
@ JL
Definition LineBreak.d.hpp:219
@ H2
Definition LineBreak.d.hpp:211
@ Surrogate
Definition LineBreak.d.hpp:187
@ PostfixNumeric
Definition LineBreak.d.hpp:171
@ UnambiguousHyphen
Definition LineBreak.d.hpp:279
@ H3
Definition LineBreak.d.hpp:215
@ OpenPunctuation
Definition LineBreak.d.hpp:167
@ Glue
Definition LineBreak.d.hpp:135
@ Aksara
Definition LineBreak.d.hpp:259
@ Unknown
Definition LineBreak.d.hpp:87
@ ClosePunctuation
Definition LineBreak.d.hpp:119
@ ComplexContext
Definition LineBreak.d.hpp:183
@ ViramaFinal
Definition LineBreak.d.hpp:271
@ InfixNumeric
Definition LineBreak.d.hpp:151
@ ContingentBreak
Definition LineBreak.d.hpp:115
@ PrefixNumeric
Definition LineBreak.d.hpp:175
@ HebrewLetter
Definition LineBreak.d.hpp:239
@ RegionalIndicator
Definition LineBreak.d.hpp:243
@ CarriageReturn
Definition LineBreak.d.hpp:127
@ BreakAfter
Definition LineBreak.d.hpp:103
@ EModifier
Definition LineBreak.d.hpp:251
@ MandatoryBreak
Definition LineBreak.d.hpp:111
@ NextLine
Definition LineBreak.d.hpp:203
@ JV
Definition LineBreak.d.hpp:227
@ ConditionalJapaneseStarter
Definition LineBreak.d.hpp:235
@ WordJoiner
Definition LineBreak.d.hpp:207
@ Ideographic
Definition LineBreak.d.hpp:143
@ JT
Definition LineBreak.d.hpp:223
@ Inseparable
Definition LineBreak.d.hpp:147
@ Space
Definition LineBreak.d.hpp:191
@ Alphabetic
Definition LineBreak.d.hpp:95
@ Quotation
Definition LineBreak.d.hpp:179
static icu4x::LineBreak for_char(char32_t ch)
Definition LineBreak.hpp:102
std::optional< std::string_view > short_name() const
Definition LineBreak.hpp:112
LineBreak()
Definition LineBreak.d.hpp:282
constexpr LineBreak(Value v)
Definition LineBreak.d.hpp:285
Definition Bidi.d.hpp:13