ICU4X
International Components for Unicode
Loading...
Searching...
No Matches
Decimal.d.hpp
Go to the documentation of this file.
1#ifndef icu4x_Decimal_D_HPP
2#define icu4x_Decimal_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>
13
14namespace icu4x {
15namespace capi { struct Decimal; }
16class Decimal;
20class DecimalSign;
23}
24
25
26namespace icu4x {
27namespace capi {
28 struct Decimal;
29} // namespace capi
30} // namespace
31
32namespace icu4x {
36class Decimal {
37public:
38
44 inline static std::unique_ptr<icu4x::Decimal> from(int32_t v);
45
51 inline static std::unique_ptr<icu4x::Decimal> from(uint32_t v);
52
58 inline static std::unique_ptr<icu4x::Decimal> from(int64_t v);
59
65 inline static std::unique_ptr<icu4x::Decimal> from(uint64_t v);
66
75
84
93
103
110
114 inline uint8_t digit_at(int16_t magnitude) const;
115
119 inline int16_t magnitude_start() const;
120
124 inline int16_t magnitude_end() const;
125
129 inline int16_t nonzero_magnitude_start() const;
130
134 inline int16_t nonzero_magnitude_end() const;
135
139 inline bool is_zero() const;
140
146 inline void multiply_pow10(int16_t power);
147
151 inline icu4x::DecimalSign sign() const;
152
158 inline void set_sign(icu4x::DecimalSign sign);
159
163 inline void apply_sign_display(icu4x::DecimalSignDisplay sign_display);
164
168 inline void trim_start();
169
173 inline void trim_end();
174
178 inline void trim_end_if_integer();
179
185 inline void pad_start(int16_t position);
186
192 inline void pad_end(int16_t position);
193
200 inline void set_max_position(int16_t position);
201
210 inline void round(int16_t position);
211
215 inline void ceil(int16_t position);
216
220 inline void expand(int16_t position);
221
225 inline void floor(int16_t position);
226
230 inline void trunc(int16_t position);
231
235 inline void round_with_mode(int16_t position, icu4x::DecimalSignedRoundingMode mode);
236
241
252
258 inline std::string to_string() const;
259
260 inline const icu4x::capi::Decimal* AsFFI() const;
261 inline icu4x::capi::Decimal* AsFFI();
262 inline static const icu4x::Decimal* FromFFI(const icu4x::capi::Decimal* ptr);
263 inline static icu4x::Decimal* FromFFI(icu4x::capi::Decimal* ptr);
264 inline static void operator delete(void* ptr);
265private:
266 Decimal() = delete;
267 Decimal(const icu4x::Decimal&) = delete;
268 Decimal(icu4x::Decimal&&) noexcept = delete;
269 Decimal operator=(const icu4x::Decimal&) = delete;
270 Decimal operator=(icu4x::Decimal&&) noexcept = delete;
271 static void operator delete[](void*, size_t) = delete;
272};
273
274} // namespace
275#endif // icu4x_Decimal_D_HPP
Definition diplomat_runtime.hpp:140
Definition DecimalParseError.d.hpp:31
Definition DecimalRoundingIncrement.d.hpp:34
Definition DecimalSignDisplay.d.hpp:35
Definition DecimalSign.d.hpp:33
Definition DecimalSignedRoundingMode.d.hpp:39
Definition Decimal.d.hpp:36
void set_sign(icu4x::DecimalSign sign)
Definition Decimal.hpp:195
void multiply_pow10(int16_t power)
Definition Decimal.hpp:185
void apply_sign_display(icu4x::DecimalSignDisplay sign_display)
Definition Decimal.hpp:200
void pad_end(int16_t position)
Definition Decimal.hpp:222
bool is_zero() const
Definition Decimal.hpp:180
static diplomat::result< std::unique_ptr< icu4x::Decimal >, icu4x::DecimalLimitError > from_double_with_round_trip_precision(double f)
Definition Decimal.hpp:144
void round(int16_t position)
Definition Decimal.hpp:232
diplomat::result< std::monostate, std::monostate > concatenate_end(icu4x::Decimal &other)
Definition Decimal.hpp:270
int16_t nonzero_magnitude_start() const
Definition Decimal.hpp:170
int16_t magnitude_end() const
Definition Decimal.hpp:165
void round_with_mode_and_increment(int16_t position, icu4x::DecimalSignedRoundingMode mode, icu4x::DecimalRoundingIncrement increment)
Definition Decimal.hpp:263
void floor(int16_t position)
Definition Decimal.hpp:247
int16_t nonzero_magnitude_end() const
Definition Decimal.hpp:175
void trim_start()
Definition Decimal.hpp:205
void trim_end_if_integer()
Definition Decimal.hpp:213
void set_max_position(int16_t position)
Definition Decimal.hpp:227
icu4x::DecimalSign sign() const
Definition Decimal.hpp:190
void expand(int16_t position)
Definition Decimal.hpp:242
static diplomat::result< std::unique_ptr< icu4x::Decimal >, icu4x::DecimalLimitError > from_double_with_lower_magnitude(double f, int16_t magnitude)
Definition Decimal.hpp:132
static diplomat::result< std::unique_ptr< icu4x::Decimal >, icu4x::DecimalParseError > from_string(std::string_view v)
Definition Decimal.hpp:149
void ceil(int16_t position)
Definition Decimal.hpp:237
std::string to_string() const
Definition Decimal.hpp:276
int16_t magnitude_start() const
Definition Decimal.hpp:160
uint8_t digit_at(int16_t magnitude) const
Definition Decimal.hpp:154
static diplomat::result< std::unique_ptr< icu4x::Decimal >, icu4x::DecimalLimitError > from_double_with_integer_precision(double f)
Definition Decimal.hpp:127
static std::unique_ptr< icu4x::Decimal > from(int32_t v)
Definition Decimal.hpp:107
void trim_end()
Definition Decimal.hpp:209
void trunc(int16_t position)
Definition Decimal.hpp:252
void pad_start(int16_t position)
Definition Decimal.hpp:217
static diplomat::result< std::unique_ptr< icu4x::Decimal >, icu4x::DecimalLimitError > from_double_with_significant_digits(double f, uint8_t digits)
Definition Decimal.hpp:138
void round_with_mode(int16_t position, icu4x::DecimalSignedRoundingMode mode)
Definition Decimal.hpp:257
Definition Bidi.d.hpp:14
Definition DecimalLimitError.d.hpp:26