tor-browser

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

TimePrecision.hpp (2011B)


      1 #ifndef icu4x_TimePrecision_HPP
      2 #define icu4x_TimePrecision_HPP
      3 
      4 #include "TimePrecision.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    typedef struct icu4x_TimePrecision_from_subsecond_digits_mv1_result {union {icu4x::capi::TimePrecision ok; }; bool is_ok;} icu4x_TimePrecision_from_subsecond_digits_mv1_result;
     22    icu4x_TimePrecision_from_subsecond_digits_mv1_result icu4x_TimePrecision_from_subsecond_digits_mv1(uint8_t digits);
     23 
     24    } // extern "C"
     25 } // namespace capi
     26 } // namespace
     27 
     28 inline icu4x::capi::TimePrecision icu4x::TimePrecision::AsFFI() const {
     29  return static_cast<icu4x::capi::TimePrecision>(value);
     30 }
     31 
     32 inline icu4x::TimePrecision icu4x::TimePrecision::FromFFI(icu4x::capi::TimePrecision c_enum) {
     33  switch (c_enum) {
     34    case icu4x::capi::TimePrecision_Hour:
     35    case icu4x::capi::TimePrecision_Minute:
     36    case icu4x::capi::TimePrecision_MinuteOptional:
     37    case icu4x::capi::TimePrecision_Second:
     38    case icu4x::capi::TimePrecision_Subsecond1:
     39    case icu4x::capi::TimePrecision_Subsecond2:
     40    case icu4x::capi::TimePrecision_Subsecond3:
     41    case icu4x::capi::TimePrecision_Subsecond4:
     42    case icu4x::capi::TimePrecision_Subsecond5:
     43    case icu4x::capi::TimePrecision_Subsecond6:
     44    case icu4x::capi::TimePrecision_Subsecond7:
     45    case icu4x::capi::TimePrecision_Subsecond8:
     46    case icu4x::capi::TimePrecision_Subsecond9:
     47      return static_cast<icu4x::TimePrecision::Value>(c_enum);
     48    default:
     49      std::abort();
     50  }
     51 }
     52 
     53 inline std::optional<icu4x::TimePrecision> icu4x::TimePrecision::from_subsecond_digits(uint8_t digits) {
     54  auto result = icu4x::capi::icu4x_TimePrecision_from_subsecond_digits_mv1(digits);
     55  return result.is_ok ? std::optional<icu4x::TimePrecision>(icu4x::TimePrecision::FromFFI(result.ok)) : std::nullopt;
     56 }
     57 #endif // icu4x_TimePrecision_HPP