tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

EastAsianWidth.hpp (3360B)


      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 <cstdlib>
     14 #include "../diplomat_runtime.hpp"
     15 
     16 
     17 namespace icu4x {
     18 namespace capi {
     19    extern "C" {
     20 
     21    icu4x::capi::EastAsianWidth icu4x_EastAsianWidth_for_char_mv1(char32_t ch);
     22 
     23    typedef struct icu4x_EastAsianWidth_long_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_EastAsianWidth_long_name_mv1_result;
     24    icu4x_EastAsianWidth_long_name_mv1_result icu4x_EastAsianWidth_long_name_mv1(icu4x::capi::EastAsianWidth self);
     25 
     26    typedef struct icu4x_EastAsianWidth_short_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_EastAsianWidth_short_name_mv1_result;
     27    icu4x_EastAsianWidth_short_name_mv1_result icu4x_EastAsianWidth_short_name_mv1(icu4x::capi::EastAsianWidth self);
     28 
     29    uint8_t icu4x_EastAsianWidth_to_integer_value_mv1(icu4x::capi::EastAsianWidth self);
     30 
     31    typedef struct icu4x_EastAsianWidth_from_integer_value_mv1_result {union {icu4x::capi::EastAsianWidth ok; }; bool is_ok;} icu4x_EastAsianWidth_from_integer_value_mv1_result;
     32    icu4x_EastAsianWidth_from_integer_value_mv1_result icu4x_EastAsianWidth_from_integer_value_mv1(uint8_t other);
     33 
     34    } // extern "C"
     35 } // namespace capi
     36 } // namespace
     37 
     38 inline icu4x::capi::EastAsianWidth icu4x::EastAsianWidth::AsFFI() const {
     39  return static_cast<icu4x::capi::EastAsianWidth>(value);
     40 }
     41 
     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      std::abort();
     53  }
     54 }
     55 
     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 
     61 inline std::optional<std::string_view> icu4x::EastAsianWidth::long_name() const {
     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 
     66 inline std::optional<std::string_view> icu4x::EastAsianWidth::short_name() const {
     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 
     71 inline uint8_t icu4x::EastAsianWidth::to_integer_value() const {
     72  auto result = icu4x::capi::icu4x_EastAsianWidth_to_integer_value_mv1(this->AsFFI());
     73  return result;
     74 }
     75 
     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