tor-browser

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

GraphemeClusterBreak.hpp (3034B)


      1 #ifndef icu4x_GraphemeClusterBreak_HPP
      2 #define icu4x_GraphemeClusterBreak_HPP
      3 
      4 #include "GraphemeClusterBreak.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::GraphemeClusterBreak icu4x_GraphemeClusterBreak_for_char_mv1(char32_t ch);
     22 
     23    uint8_t icu4x_GraphemeClusterBreak_to_integer_value_mv1(icu4x::capi::GraphemeClusterBreak self);
     24 
     25    typedef struct icu4x_GraphemeClusterBreak_from_integer_value_mv1_result {union {icu4x::capi::GraphemeClusterBreak ok; }; bool is_ok;} icu4x_GraphemeClusterBreak_from_integer_value_mv1_result;
     26    icu4x_GraphemeClusterBreak_from_integer_value_mv1_result icu4x_GraphemeClusterBreak_from_integer_value_mv1(uint8_t other);
     27 
     28    } // extern "C"
     29 } // namespace capi
     30 } // namespace
     31 
     32 inline icu4x::capi::GraphemeClusterBreak icu4x::GraphemeClusterBreak::AsFFI() const {
     33  return static_cast<icu4x::capi::GraphemeClusterBreak>(value);
     34 }
     35 
     36 inline icu4x::GraphemeClusterBreak icu4x::GraphemeClusterBreak::FromFFI(icu4x::capi::GraphemeClusterBreak c_enum) {
     37  switch (c_enum) {
     38    case icu4x::capi::GraphemeClusterBreak_Other:
     39    case icu4x::capi::GraphemeClusterBreak_Control:
     40    case icu4x::capi::GraphemeClusterBreak_CR:
     41    case icu4x::capi::GraphemeClusterBreak_Extend:
     42    case icu4x::capi::GraphemeClusterBreak_L:
     43    case icu4x::capi::GraphemeClusterBreak_LF:
     44    case icu4x::capi::GraphemeClusterBreak_LV:
     45    case icu4x::capi::GraphemeClusterBreak_LVT:
     46    case icu4x::capi::GraphemeClusterBreak_T:
     47    case icu4x::capi::GraphemeClusterBreak_V:
     48    case icu4x::capi::GraphemeClusterBreak_SpacingMark:
     49    case icu4x::capi::GraphemeClusterBreak_Prepend:
     50    case icu4x::capi::GraphemeClusterBreak_RegionalIndicator:
     51    case icu4x::capi::GraphemeClusterBreak_EBase:
     52    case icu4x::capi::GraphemeClusterBreak_EBaseGAZ:
     53    case icu4x::capi::GraphemeClusterBreak_EModifier:
     54    case icu4x::capi::GraphemeClusterBreak_GlueAfterZwj:
     55    case icu4x::capi::GraphemeClusterBreak_ZWJ:
     56      return static_cast<icu4x::GraphemeClusterBreak::Value>(c_enum);
     57    default:
     58      std::abort();
     59  }
     60 }
     61 
     62 inline icu4x::GraphemeClusterBreak icu4x::GraphemeClusterBreak::for_char(char32_t ch) {
     63  auto result = icu4x::capi::icu4x_GraphemeClusterBreak_for_char_mv1(ch);
     64  return icu4x::GraphemeClusterBreak::FromFFI(result);
     65 }
     66 
     67 inline uint8_t icu4x::GraphemeClusterBreak::to_integer_value() const {
     68  auto result = icu4x::capi::icu4x_GraphemeClusterBreak_to_integer_value_mv1(this->AsFFI());
     69  return result;
     70 }
     71 
     72 inline std::optional<icu4x::GraphemeClusterBreak> icu4x::GraphemeClusterBreak::from_integer_value(uint8_t other) {
     73  auto result = icu4x::capi::icu4x_GraphemeClusterBreak_from_integer_value_mv1(other);
     74  return result.is_ok ? std::optional<icu4x::GraphemeClusterBreak>(icu4x::GraphemeClusterBreak::FromFFI(result.ok)) : std::nullopt;
     75 }
     76 #endif // icu4x_GraphemeClusterBreak_HPP