• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "../diplomat_runtime.hpp"
14 
15 
16 namespace icu4x {
17 namespace capi {
18     extern "C" {
19 
20     icu4x::capi::LineBreak icu4x_LineBreak_for_char_mv1(char32_t ch);
21 
22     typedef struct icu4x_LineBreak_long_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_LineBreak_long_name_mv1_result;
23     icu4x_LineBreak_long_name_mv1_result icu4x_LineBreak_long_name_mv1(icu4x::capi::LineBreak self);
24 
25     typedef struct icu4x_LineBreak_short_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_LineBreak_short_name_mv1_result;
26     icu4x_LineBreak_short_name_mv1_result icu4x_LineBreak_short_name_mv1(icu4x::capi::LineBreak self);
27 
28     uint8_t icu4x_LineBreak_to_integer_value_mv1(icu4x::capi::LineBreak self);
29 
30     typedef struct icu4x_LineBreak_from_integer_value_mv1_result {union {icu4x::capi::LineBreak ok; }; bool is_ok;} icu4x_LineBreak_from_integer_value_mv1_result;
31     icu4x_LineBreak_from_integer_value_mv1_result icu4x_LineBreak_from_integer_value_mv1(uint8_t other);
32 
33 
34     } // extern "C"
35 } // namespace capi
36 } // namespace
37 
AsFFI() const38 inline icu4x::capi::LineBreak icu4x::LineBreak::AsFFI() const {
39   return static_cast<icu4x::capi::LineBreak>(value);
40 }
41 
FromFFI(icu4x::capi::LineBreak c_enum)42 inline 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       abort();
95   }
96 }
97 
for_char(char32_t ch)98 inline icu4x::LineBreak icu4x::LineBreak::for_char(char32_t ch) {
99   auto result = icu4x::capi::icu4x_LineBreak_for_char_mv1(ch);
100   return icu4x::LineBreak::FromFFI(result);
101 }
102 
long_name()103 inline std::optional<std::string_view> icu4x::LineBreak::long_name() {
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 
short_name()108 inline std::optional<std::string_view> icu4x::LineBreak::short_name() {
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 
to_integer_value()113 inline uint8_t icu4x::LineBreak::to_integer_value() {
114   auto result = icu4x::capi::icu4x_LineBreak_to_integer_value_mv1(this->AsFFI());
115   return result;
116 }
117 
from_integer_value(uint8_t other)118 inline 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
123