ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
NumericType.d.hpp
Go to the documentation of this file.
1#ifndef ICU4X_NumericType_D_HPP
2#define ICU4X_NumericType_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"
13namespace icu4x {
14class NumericType;
15} // namespace icu4x
16
17
18
19namespace icu4x {
20namespace capi {
21 enum NumericType {
22 NumericType_None = 0,
23 NumericType_Decimal = 1,
24 NumericType_Digit = 2,
25 NumericType_Numeric = 3,
26 };
27
28 typedef struct NumericType_option {union { NumericType ok; }; bool is_ok; } NumericType_option;
29} // namespace capi
30} // namespace
31
32namespace icu4x {
37public:
38 enum Value {
42 None = 0,
50 Digit = 2,
55 };
56
57 NumericType(): value(Value::None) {}
58
59 // Implicit conversions between enum and ::Value
60 constexpr NumericType(Value v) : value(v) {}
61 constexpr operator Value() const { return value; }
62 // Prevent usage as boolean value
63 explicit operator bool() const = delete;
64
68 inline static icu4x::NumericType for_char(char32_t ch);
69
75 inline std::optional<std::string_view> long_name() const;
76
82 inline std::optional<std::string_view> short_name() const;
83
89 inline uint8_t to_integer_value() const;
90
96 inline static std::optional<icu4x::NumericType> from_integer_value(uint8_t other);
97
98 inline static std::optional<icu4x::NumericType> try_from_str(std::string_view s);
99
100 inline icu4x::capi::NumericType AsFFI() const;
101 inline static icu4x::NumericType FromFFI(icu4x::capi::NumericType c_enum);
102private:
103 Value value;
104};
105
106} // namespace
107#endif // ICU4X_NumericType_D_HPP
Definition NumericType.d.hpp:36
static icu4x::NumericType for_char(char32_t ch)
Definition NumericType.hpp:57
NumericType()
Definition NumericType.d.hpp:57
static std::optional< icu4x::NumericType > try_from_str(std::string_view s)
Definition NumericType.hpp:82
std::optional< std::string_view > long_name() const
Definition NumericType.hpp:62
std::optional< std::string_view > short_name() const
Definition NumericType.hpp:67
constexpr NumericType(Value v)
Definition NumericType.d.hpp:60
static std::optional< icu4x::NumericType > from_integer_value(uint8_t other)
Definition NumericType.hpp:77
uint8_t to_integer_value() const
Definition NumericType.hpp:72
Value
Definition NumericType.d.hpp:38
@ Numeric
Definition NumericType.d.hpp:54
@ Decimal
Definition NumericType.d.hpp:46
@ None
Definition NumericType.d.hpp:42
@ Digit
Definition NumericType.d.hpp:50
Definition Bidi.d.hpp:13