tor-browser

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

BidiClass.hpp (4007B)


      1 #ifndef icu4x_BidiClass_HPP
      2 #define icu4x_BidiClass_HPP
      3 
      4 #include "BidiClass.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::BidiClass icu4x_BidiClass_for_char_mv1(char32_t ch);
     22 
     23    typedef struct icu4x_BidiClass_long_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_BidiClass_long_name_mv1_result;
     24    icu4x_BidiClass_long_name_mv1_result icu4x_BidiClass_long_name_mv1(icu4x::capi::BidiClass self);
     25 
     26    typedef struct icu4x_BidiClass_short_name_mv1_result {union {diplomat::capi::DiplomatStringView ok; }; bool is_ok;} icu4x_BidiClass_short_name_mv1_result;
     27    icu4x_BidiClass_short_name_mv1_result icu4x_BidiClass_short_name_mv1(icu4x::capi::BidiClass self);
     28 
     29    uint8_t icu4x_BidiClass_to_integer_value_mv1(icu4x::capi::BidiClass self);
     30 
     31    typedef struct icu4x_BidiClass_from_integer_value_mv1_result {union {icu4x::capi::BidiClass ok; }; bool is_ok;} icu4x_BidiClass_from_integer_value_mv1_result;
     32    icu4x_BidiClass_from_integer_value_mv1_result icu4x_BidiClass_from_integer_value_mv1(uint8_t other);
     33 
     34    } // extern "C"
     35 } // namespace capi
     36 } // namespace
     37 
     38 inline icu4x::capi::BidiClass icu4x::BidiClass::AsFFI() const {
     39  return static_cast<icu4x::capi::BidiClass>(value);
     40 }
     41 
     42 inline icu4x::BidiClass icu4x::BidiClass::FromFFI(icu4x::capi::BidiClass c_enum) {
     43  switch (c_enum) {
     44    case icu4x::capi::BidiClass_LeftToRight:
     45    case icu4x::capi::BidiClass_RightToLeft:
     46    case icu4x::capi::BidiClass_EuropeanNumber:
     47    case icu4x::capi::BidiClass_EuropeanSeparator:
     48    case icu4x::capi::BidiClass_EuropeanTerminator:
     49    case icu4x::capi::BidiClass_ArabicNumber:
     50    case icu4x::capi::BidiClass_CommonSeparator:
     51    case icu4x::capi::BidiClass_ParagraphSeparator:
     52    case icu4x::capi::BidiClass_SegmentSeparator:
     53    case icu4x::capi::BidiClass_WhiteSpace:
     54    case icu4x::capi::BidiClass_OtherNeutral:
     55    case icu4x::capi::BidiClass_LeftToRightEmbedding:
     56    case icu4x::capi::BidiClass_LeftToRightOverride:
     57    case icu4x::capi::BidiClass_ArabicLetter:
     58    case icu4x::capi::BidiClass_RightToLeftEmbedding:
     59    case icu4x::capi::BidiClass_RightToLeftOverride:
     60    case icu4x::capi::BidiClass_PopDirectionalFormat:
     61    case icu4x::capi::BidiClass_NonspacingMark:
     62    case icu4x::capi::BidiClass_BoundaryNeutral:
     63    case icu4x::capi::BidiClass_FirstStrongIsolate:
     64    case icu4x::capi::BidiClass_LeftToRightIsolate:
     65    case icu4x::capi::BidiClass_RightToLeftIsolate:
     66    case icu4x::capi::BidiClass_PopDirectionalIsolate:
     67      return static_cast<icu4x::BidiClass::Value>(c_enum);
     68    default:
     69      std::abort();
     70  }
     71 }
     72 
     73 inline icu4x::BidiClass icu4x::BidiClass::for_char(char32_t ch) {
     74  auto result = icu4x::capi::icu4x_BidiClass_for_char_mv1(ch);
     75  return icu4x::BidiClass::FromFFI(result);
     76 }
     77 
     78 inline std::optional<std::string_view> icu4x::BidiClass::long_name() const {
     79  auto result = icu4x::capi::icu4x_BidiClass_long_name_mv1(this->AsFFI());
     80  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
     81 }
     82 
     83 inline std::optional<std::string_view> icu4x::BidiClass::short_name() const {
     84  auto result = icu4x::capi::icu4x_BidiClass_short_name_mv1(this->AsFFI());
     85  return result.is_ok ? std::optional<std::string_view>(std::string_view(result.ok.data, result.ok.len)) : std::nullopt;
     86 }
     87 
     88 inline uint8_t icu4x::BidiClass::to_integer_value() const {
     89  auto result = icu4x::capi::icu4x_BidiClass_to_integer_value_mv1(this->AsFFI());
     90  return result;
     91 }
     92 
     93 inline std::optional<icu4x::BidiClass> icu4x::BidiClass::from_integer_value(uint8_t other) {
     94  auto result = icu4x::capi::icu4x_BidiClass_from_integer_value_mv1(other);
     95  return result.is_ok ? std::optional<icu4x::BidiClass>(icu4x::BidiClass::FromFFI(result.ok)) : std::nullopt;
     96 }
     97 #endif // icu4x_BidiClass_HPP