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>
12#include "diplomat_runtime.hpp"
13namespace icu4x {
14namespace capi { struct Decimal; }
15class Decimal;
16struct DecimalLimitError;
17class DecimalParseError;
18class DecimalRoundingIncrement;
19class DecimalSign;
20class DecimalSignDisplay;
21class DecimalSignedRoundingMode;
22} // namespace icu4x
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 template<typename W>
260 inline void to_string_write(W& writeable_output) const;
261
265 inline bool equals(const icu4x::Decimal& other) const;
266
267 inline const icu4x::capi::Decimal* AsFFI() const;
268 inline icu4x::capi::Decimal* AsFFI();
269 inline static const icu4x::Decimal* FromFFI(const icu4x::capi::Decimal* ptr);
270 inline static icu4x::Decimal* FromFFI(icu4x::capi::Decimal* ptr);
271 inline static void operator delete(void* ptr);
272private:
273 Decimal() = delete;
274 Decimal(const icu4x::Decimal&) = delete;
275 Decimal(icu4x::Decimal&&) noexcept = delete;
276 Decimal operator=(const icu4x::Decimal&) = delete;
277 Decimal operator=(icu4x::Decimal&&) noexcept = delete;
278 static void operator delete[](void*, size_t) = delete;
279};
280
281} // namespace
282#endif // ICU4X_Decimal_D_HPP
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:197
void multiply_pow10(int16_t power)
Definition Decimal.hpp:187
void apply_sign_display(icu4x::DecimalSignDisplay sign_display)
Definition Decimal.hpp:202
void pad_end(int16_t position)
Definition Decimal.hpp:224
bool is_zero() const
Definition Decimal.hpp:182
void round(int16_t position)
Definition Decimal.hpp:234
static icu4x::diplomat::result< std::unique_ptr< icu4x::Decimal >, icu4x::DecimalLimitError > from_double_with_lower_magnitude(double f, int16_t magnitude)
Definition Decimal.hpp:134
int16_t nonzero_magnitude_start() const
Definition Decimal.hpp:172
int16_t magnitude_end() const
Definition Decimal.hpp:167
void round_with_mode_and_increment(int16_t position, icu4x::DecimalSignedRoundingMode mode, icu4x::DecimalRoundingIncrement increment)
Definition Decimal.hpp:265
void floor(int16_t position)
Definition Decimal.hpp:249
int16_t nonzero_magnitude_end() const
Definition Decimal.hpp:177
void trim_start()
Definition Decimal.hpp:207
void trim_end_if_integer()
Definition Decimal.hpp:215
static icu4x::diplomat::result< std::unique_ptr< icu4x::Decimal >, icu4x::DecimalLimitError > from_double_with_integer_precision(double f)
Definition Decimal.hpp:129
void to_string_write(W &writeable_output) const
Definition Decimal.hpp:286
bool equals(const icu4x::Decimal &other) const
Definition Decimal.hpp:292
icu4x::diplomat::result< std::monostate, std::monostate > concatenate_end(icu4x::Decimal &other)
Definition Decimal.hpp:272
void set_max_position(int16_t position)
Definition Decimal.hpp:229
icu4x::DecimalSign sign() const
Definition Decimal.hpp:192
void expand(int16_t position)
Definition Decimal.hpp:244
static icu4x::diplomat::result< std::unique_ptr< icu4x::Decimal >, icu4x::DecimalLimitError > from_double_with_round_trip_precision(double f)
Definition Decimal.hpp:146
static icu4x::diplomat::result< std::unique_ptr< icu4x::Decimal >, icu4x::DecimalLimitError > from_double_with_significant_digits(double f, uint8_t digits)
Definition Decimal.hpp:140
void ceil(int16_t position)
Definition Decimal.hpp:239
std::string to_string() const
Definition Decimal.hpp:278
int16_t magnitude_start() const
Definition Decimal.hpp:162
uint8_t digit_at(int16_t magnitude) const
Definition Decimal.hpp:156
static icu4x::diplomat::result< std::unique_ptr< icu4x::Decimal >, icu4x::DecimalParseError > from_string(std::string_view v)
Definition Decimal.hpp:151
static std::unique_ptr< icu4x::Decimal > from(int32_t v)
Definition Decimal.hpp:109
void trim_end()
Definition Decimal.hpp:211
void trunc(int16_t position)
Definition Decimal.hpp:254
void pad_start(int16_t position)
Definition Decimal.hpp:219
void round_with_mode(int16_t position, icu4x::DecimalSignedRoundingMode mode)
Definition Decimal.hpp:259
Definition Bidi.d.hpp:13
Definition DecimalLimitError.d.hpp:26
Definition diplomat_runtime.hpp:243