• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #ifndef icu4x_FixedDecimalSignedRoundingMode_D_HPP
2 #define icu4x_FixedDecimalSignedRoundingMode_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 "../diplomat_runtime.hpp"
12 
13 
14 namespace icu4x {
15 namespace capi {
16     enum FixedDecimalSignedRoundingMode {
17       FixedDecimalSignedRoundingMode_Expand = 0,
18       FixedDecimalSignedRoundingMode_Trunc = 1,
19       FixedDecimalSignedRoundingMode_HalfExpand = 2,
20       FixedDecimalSignedRoundingMode_HalfTrunc = 3,
21       FixedDecimalSignedRoundingMode_HalfEven = 4,
22       FixedDecimalSignedRoundingMode_Ceil = 5,
23       FixedDecimalSignedRoundingMode_Floor = 6,
24       FixedDecimalSignedRoundingMode_HalfCeil = 7,
25       FixedDecimalSignedRoundingMode_HalfFloor = 8,
26     };
27 
28     typedef struct FixedDecimalSignedRoundingMode_option {union { FixedDecimalSignedRoundingMode ok; }; bool is_ok; } FixedDecimalSignedRoundingMode_option;
29 } // namespace capi
30 } // namespace
31 
32 namespace icu4x {
33 class FixedDecimalSignedRoundingMode {
34 public:
35   enum Value {
36     Expand = 0,
37     Trunc = 1,
38     HalfExpand = 2,
39     HalfTrunc = 3,
40     HalfEven = 4,
41     Ceil = 5,
42     Floor = 6,
43     HalfCeil = 7,
44     HalfFloor = 8,
45   };
46 
47   FixedDecimalSignedRoundingMode() = default;
48   // Implicit conversions between enum and ::Value
FixedDecimalSignedRoundingMode(Value v)49   constexpr FixedDecimalSignedRoundingMode(Value v) : value(v) {}
operator Value() const50   constexpr operator Value() const { return value; }
51   // Prevent usage as boolean value
52   explicit operator bool() const = delete;
53 
54   inline icu4x::capi::FixedDecimalSignedRoundingMode AsFFI() const;
55   inline static icu4x::FixedDecimalSignedRoundingMode FromFFI(icu4x::capi::FixedDecimalSignedRoundingMode c_enum);
56 private:
57     Value value;
58 };
59 
60 } // namespace
61 #endif // icu4x_FixedDecimalSignedRoundingMode_D_HPP
62