tor-browser

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

DecimalSignedRoundingMode.d.hpp (1963B)


      1 #ifndef icu4x_DecimalSignedRoundingMode_D_HPP
      2 #define icu4x_DecimalSignedRoundingMode_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 
     15 namespace icu4x {
     16 namespace capi {
     17    enum DecimalSignedRoundingMode {
     18      DecimalSignedRoundingMode_Expand = 0,
     19      DecimalSignedRoundingMode_Trunc = 1,
     20      DecimalSignedRoundingMode_HalfExpand = 2,
     21      DecimalSignedRoundingMode_HalfTrunc = 3,
     22      DecimalSignedRoundingMode_HalfEven = 4,
     23      DecimalSignedRoundingMode_Ceil = 5,
     24      DecimalSignedRoundingMode_Floor = 6,
     25      DecimalSignedRoundingMode_HalfCeil = 7,
     26      DecimalSignedRoundingMode_HalfFloor = 8,
     27    };
     28 
     29    typedef struct DecimalSignedRoundingMode_option {union { DecimalSignedRoundingMode ok; }; bool is_ok; } DecimalSignedRoundingMode_option;
     30 } // namespace capi
     31 } // namespace
     32 
     33 namespace icu4x {
     34 /**
     35 * Mode used in a rounding operation for signed numbers.
     36 *
     37 * See the [Rust documentation for `SignedRoundingMode`](https://docs.rs/fixed_decimal/latest/fixed_decimal/enum.SignedRoundingMode.html) for more information.
     38 */
     39 class DecimalSignedRoundingMode {
     40 public:
     41  enum Value {
     42    Expand = 0,
     43    Trunc = 1,
     44    HalfExpand = 2,
     45    HalfTrunc = 3,
     46    HalfEven = 4,
     47    Ceil = 5,
     48    Floor = 6,
     49    HalfCeil = 7,
     50    HalfFloor = 8,
     51  };
     52 
     53  DecimalSignedRoundingMode() = default;
     54  // Implicit conversions between enum and ::Value
     55  constexpr DecimalSignedRoundingMode(Value v) : value(v) {}
     56  constexpr operator Value() const { return value; }
     57  // Prevent usage as boolean value
     58  explicit operator bool() const = delete;
     59 
     60  inline icu4x::capi::DecimalSignedRoundingMode AsFFI() const;
     61  inline static icu4x::DecimalSignedRoundingMode FromFFI(icu4x::capi::DecimalSignedRoundingMode c_enum);
     62 private:
     63    Value value;
     64 };
     65 
     66 } // namespace
     67 #endif // icu4x_DecimalSignedRoundingMode_D_HPP