tor-browser

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

TimePrecision.d.hpp (2358B)


      1 #ifndef icu4x_TimePrecision_D_HPP
      2 #define icu4x_TimePrecision_D_HPP
      3 
      4 #include <stdio.h>
      5 #include <stdint.h>
      6 #include <stddef.h>
      7 #include <stdbool.h>
      8 #include <memory>
      9 #include <functional>
     10 #include <optional>
     11 #include <cstdlib>
     12 #include "../diplomat_runtime.hpp"
     13 
     14 namespace icu4x {
     15 class TimePrecision;
     16 }
     17 
     18 
     19 namespace icu4x {
     20 namespace capi {
     21    enum TimePrecision {
     22      TimePrecision_Hour = 0,
     23      TimePrecision_Minute = 1,
     24      TimePrecision_MinuteOptional = 2,
     25      TimePrecision_Second = 3,
     26      TimePrecision_Subsecond1 = 4,
     27      TimePrecision_Subsecond2 = 5,
     28      TimePrecision_Subsecond3 = 6,
     29      TimePrecision_Subsecond4 = 7,
     30      TimePrecision_Subsecond5 = 8,
     31      TimePrecision_Subsecond6 = 9,
     32      TimePrecision_Subsecond7 = 10,
     33      TimePrecision_Subsecond8 = 11,
     34      TimePrecision_Subsecond9 = 12,
     35    };
     36 
     37    typedef struct TimePrecision_option {union { TimePrecision ok; }; bool is_ok; } TimePrecision_option;
     38 } // namespace capi
     39 } // namespace
     40 
     41 namespace icu4x {
     42 /**
     43 * See the [Rust documentation for `TimePrecision`](https://docs.rs/icu/latest/icu/datetime/options/enum.TimePrecision.html) for more information.
     44 *
     45 * See the [Rust documentation for `SubsecondDigits`](https://docs.rs/icu/latest/icu/datetime/options/enum.SubsecondDigits.html) for more information.
     46 */
     47 class TimePrecision {
     48 public:
     49  enum Value {
     50    Hour = 0,
     51    Minute = 1,
     52    MinuteOptional = 2,
     53    Second = 3,
     54    Subsecond1 = 4,
     55    Subsecond2 = 5,
     56    Subsecond3 = 6,
     57    Subsecond4 = 7,
     58    Subsecond5 = 8,
     59    Subsecond6 = 9,
     60    Subsecond7 = 10,
     61    Subsecond8 = 11,
     62    Subsecond9 = 12,
     63  };
     64 
     65  TimePrecision() = default;
     66  // Implicit conversions between enum and ::Value
     67  constexpr TimePrecision(Value v) : value(v) {}
     68  constexpr operator Value() const { return value; }
     69  // Prevent usage as boolean value
     70  explicit operator bool() const = delete;
     71 
     72  /**
     73   * See the [Rust documentation for `try_from_int`](https://docs.rs/icu/latest/icu/datetime/options/enum.SubsecondDigits.html#method.try_from_int) for more information.
     74   */
     75  inline static std::optional<icu4x::TimePrecision> from_subsecond_digits(uint8_t digits);
     76 
     77  inline icu4x::capi::TimePrecision AsFFI() const;
     78  inline static icu4x::TimePrecision FromFFI(icu4x::capi::TimePrecision c_enum);
     79 private:
     80    Value value;
     81 };
     82 
     83 } // namespace
     84 #endif // icu4x_TimePrecision_D_HPP