tor-browser

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

LineBreak.hpp (4958B)


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