• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef icu4x_EastAsianWidth_HPP
2 #define icu4x_EastAsianWidth_HPP
3 
4 #include "EastAsianWidth.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::EastAsianWidth icu4x_EastAsianWidth_for_char_mv1(char32_t ch);
21 
22     typedef struct icu4x_EastAsianWidth_long_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_EastAsianWidth_long_name_mv1_result;
23     icu4x_EastAsianWidth_long_name_mv1_result icu4x_EastAsianWidth_long_name_mv1(icu4x::capi::EastAsianWidth self);
24 
25     typedef struct icu4x_EastAsianWidth_short_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_EastAsianWidth_short_name_mv1_result;
26     icu4x_EastAsianWidth_short_name_mv1_result icu4x_EastAsianWidth_short_name_mv1(icu4x::capi::EastAsianWidth self);
27 
28     uint8_t icu4x_EastAsianWidth_to_integer_value_mv1(icu4x::capi::EastAsianWidth self);
29 
30     typedef struct icu4x_EastAsianWidth_from_integer_value_mv1_result {union {icu4x::capi::EastAsianWidth ok; }; bool is_ok;} icu4x_EastAsianWidth_from_integer_value_mv1_result;
31     icu4x_EastAsianWidth_from_integer_value_mv1_result icu4x_EastAsianWidth_from_integer_value_mv1(uint8_t other);
32 
33 
34     } // extern "C"
35 } // namespace capi
36 } // namespace
37 
AsFFI() const38 inline icu4x::capi::EastAsianWidth icu4x::EastAsianWidth::AsFFI() const {
39   return static_cast<icu4x::capi::EastAsianWidth>(value);
40 }
41 
FromFFI(icu4x::capi::EastAsianWidth c_enum)42 inline icu4x::EastAsianWidth icu4x::EastAsianWidth::FromFFI(icu4x::capi::EastAsianWidth c_enum) {
43   switch (c_enum) {
44     case icu4x::capi::EastAsianWidth_Neutral:
45     case icu4x::capi::EastAsianWidth_Ambiguous:
46     case icu4x::capi::EastAsianWidth_Halfwidth:
47     case icu4x::capi::EastAsianWidth_Fullwidth:
48     case icu4x::capi::EastAsianWidth_Narrow:
49     case icu4x::capi::EastAsianWidth_Wide:
50       return static_cast<icu4x::EastAsianWidth::Value>(c_enum);
51     default:
52       abort();
53   }
54 }
55 
for_char(char32_t ch)56 inline icu4x::EastAsianWidth icu4x::EastAsianWidth::for_char(char32_t ch) {
57   auto result = icu4x::capi::icu4x_EastAsianWidth_for_char_mv1(ch);
58   return icu4x::EastAsianWidth::FromFFI(result);
59 }
60 
long_name()61 inline std::optional<std::string_view> icu4x::EastAsianWidth::long_name() {
62   auto result = icu4x::capi::icu4x_EastAsianWidth_long_name_mv1(this->AsFFI());
63   return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
64 }
65 
short_name()66 inline std::optional<std::string_view> icu4x::EastAsianWidth::short_name() {
67   auto result = icu4x::capi::icu4x_EastAsianWidth_short_name_mv1(this->AsFFI());
68   return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
69 }
70 
to_integer_value()71 inline uint8_t icu4x::EastAsianWidth::to_integer_value() {
72   auto result = icu4x::capi::icu4x_EastAsianWidth_to_integer_value_mv1(this->AsFFI());
73   return result;
74 }
75 
from_integer_value(uint8_t other)76 inline std::optional<icu4x::EastAsianWidth> icu4x::EastAsianWidth::from_integer_value(uint8_t other) {
77   auto result = icu4x::capi::icu4x_EastAsianWidth_from_integer_value_mv1(other);
78   return result.is_ok ? std::optional<icu4x::EastAsianWidth>(icu4x::EastAsianWidth::FromFFI(result.ok)) : std::nullopt;
79 }
80 #endif // icu4x_EastAsianWidth_HPP
81