ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
LineBreak.hpp
Go to the documentation of this file.
1#ifndef icu4x_LineBreak_HPP
2#define icu4x_LineBreak_HPP
3
4#include "LineBreak.d.hpp"
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::LineBreak icu4x_LineBreak_for_char_mv1(char32_t ch);
22
23 typedef struct icu4x_LineBreak_long_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_LineBreak_long_name_mv1_result;
24 icu4x_LineBreak_long_name_mv1_result icu4x_LineBreak_long_name_mv1(icu4x::capi::LineBreak self);
25
26 typedef struct icu4x_LineBreak_short_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_LineBreak_short_name_mv1_result;
27 icu4x_LineBreak_short_name_mv1_result icu4x_LineBreak_short_name_mv1(icu4x::capi::LineBreak self);
28
29 uint8_t icu4x_LineBreak_to_integer_value_mv1(icu4x::capi::LineBreak self);
30
31 typedef struct icu4x_LineBreak_from_integer_value_mv1_result {union {icu4x::capi::LineBreak ok; }; bool is_ok;} icu4x_LineBreak_from_integer_value_mv1_result;
32 icu4x_LineBreak_from_integer_value_mv1_result icu4x_LineBreak_from_integer_value_mv1(uint8_t other);
33
34 } // extern "C"
35} // namespace capi
36} // namespace
37
38inline icu4x::capi::LineBreak icu4x::LineBreak::AsFFI() const {
39 return static_cast<icu4x::capi::LineBreak>(value);
40}
41
42inline icu4x::LineBreak icu4x::LineBreak::FromFFI(icu4x::capi::LineBreak c_enum) {
43 switch (c_enum) {
44 case icu4x::capi::LineBreak_Unknown:
45 case icu4x::capi::LineBreak_Ambiguous:
46 case icu4x::capi::LineBreak_Alphabetic:
47 case icu4x::capi::LineBreak_BreakBoth:
48 case icu4x::capi::LineBreak_BreakAfter:
49 case icu4x::capi::LineBreak_BreakBefore:
50 case icu4x::capi::LineBreak_MandatoryBreak:
51 case icu4x::capi::LineBreak_ContingentBreak:
52 case icu4x::capi::LineBreak_ClosePunctuation:
53 case icu4x::capi::LineBreak_CombiningMark:
54 case icu4x::capi::LineBreak_CarriageReturn:
55 case icu4x::capi::LineBreak_Exclamation:
56 case icu4x::capi::LineBreak_Glue:
57 case icu4x::capi::LineBreak_Hyphen:
58 case icu4x::capi::LineBreak_Ideographic:
59 case icu4x::capi::LineBreak_Inseparable:
60 case icu4x::capi::LineBreak_InfixNumeric:
61 case icu4x::capi::LineBreak_LineFeed:
62 case icu4x::capi::LineBreak_Nonstarter:
63 case icu4x::capi::LineBreak_Numeric:
64 case icu4x::capi::LineBreak_OpenPunctuation:
65 case icu4x::capi::LineBreak_PostfixNumeric:
66 case icu4x::capi::LineBreak_PrefixNumeric:
67 case icu4x::capi::LineBreak_Quotation:
68 case icu4x::capi::LineBreak_ComplexContext:
69 case icu4x::capi::LineBreak_Surrogate:
70 case icu4x::capi::LineBreak_Space:
71 case icu4x::capi::LineBreak_BreakSymbols:
72 case icu4x::capi::LineBreak_ZWSpace:
73 case icu4x::capi::LineBreak_NextLine:
74 case icu4x::capi::LineBreak_WordJoiner:
75 case icu4x::capi::LineBreak_H2:
76 case icu4x::capi::LineBreak_H3:
77 case icu4x::capi::LineBreak_JL:
78 case icu4x::capi::LineBreak_JT:
79 case icu4x::capi::LineBreak_JV:
80 case icu4x::capi::LineBreak_CloseParenthesis:
81 case icu4x::capi::LineBreak_ConditionalJapaneseStarter:
82 case icu4x::capi::LineBreak_HebrewLetter:
83 case icu4x::capi::LineBreak_RegionalIndicator:
84 case icu4x::capi::LineBreak_EBase:
85 case icu4x::capi::LineBreak_EModifier:
86 case icu4x::capi::LineBreak_ZWJ:
87 case icu4x::capi::LineBreak_Aksara:
88 case icu4x::capi::LineBreak_AksaraPrebase:
89 case icu4x::capi::LineBreak_AksaraStart:
90 case icu4x::capi::LineBreak_ViramaFinal:
91 case icu4x::capi::LineBreak_Virama:
92 return static_cast<icu4x::LineBreak::Value>(c_enum);
93 default:
94 std::abort();
95 }
96}
97
99 auto result = icu4x::capi::icu4x_LineBreak_for_char_mv1(ch);
100 return icu4x::LineBreak::FromFFI(result);
101}
102
103inline std::optional<std::string_view> icu4x::LineBreak::long_name() const {
104 auto result = icu4x::capi::icu4x_LineBreak_long_name_mv1(this->AsFFI());
105 return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
106}
107
108inline std::optional<std::string_view> icu4x::LineBreak::short_name() const {
109 auto result = icu4x::capi::icu4x_LineBreak_short_name_mv1(this->AsFFI());
110 return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
111}
112
114 auto result = icu4x::capi::icu4x_LineBreak_to_integer_value_mv1(this->AsFFI());
115 return result;
116}
117
118inline std::optional<icu4x::LineBreak> icu4x::LineBreak::from_integer_value(uint8_t other) {
119 auto result = icu4x::capi::icu4x_LineBreak_from_integer_value_mv1(other);
120 return result.is_ok ? std::optional<icu4x::LineBreak>(icu4x::LineBreak::FromFFI(result.ok)) : std::nullopt;
121}
122#endif // icu4x_LineBreak_HPP
Definition LineBreak.d.hpp:80
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
static icu4x::LineBreak for_char(char32_t ch)
Definition LineBreak.hpp:98
std::optional< std::string_view > short_name() const
Definition LineBreak.hpp:108
Definition Bidi.d.hpp:14