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;
19class DecimalSign;
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
262 inline const icu4x::capi::Decimal* AsFFI() const;
263 inline icu4x::capi::Decimal* AsFFI();
264 inline static const icu4x::Decimal* FromFFI(const icu4x::capi::Decimal* ptr);
265 inline static icu4x::Decimal* FromFFI(icu4x::capi::Decimal* ptr);
266 inline static void operator delete(void* ptr);
267private:
268 Decimal() = delete;
269 Decimal(const icu4x::Decimal&) = delete;
270 Decimal(icu4x::Decimal&&) noexcept = delete;
271 Decimal operator=(const icu4x::Decimal&) = delete;
272 Decimal operator=(icu4x::Decimal&&) noexcept = delete;
273 static void operator delete[](void*, size_t) = delete;
274};
275
276} // namespace
277#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: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
void round(int16_t position)
Definition Decimal.hpp:232
static icu4x::diplomat::result< std::unique_ptr< icu4x::Decimal >, icu4x::DecimalLimitError > from_double_with_lower_magnitude(double f, int16_t magnitude)
Definition Decimal.hpp:132
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
static icu4x::diplomat::result< std::unique_ptr< icu4x::Decimal >, icu4x::DecimalLimitError > from_double_with_integer_precision(double f)
Definition Decimal.hpp:127
void to_string_write(W &writeable_output) const
Definition Decimal.hpp:284
icu4x::diplomat::result< std::monostate, std::monostate > concatenate_end(icu4x::Decimal &other)
Definition Decimal.hpp:270
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 icu4x::diplomat::result< std::unique_ptr< icu4x::Decimal >, icu4x::DecimalLimitError > from_double_with_round_trip_precision(double f)
Definition Decimal.hpp:144
static icu4x::diplomat::result< std::unique_ptr< icu4x::Decimal >, icu4x::DecimalLimitError > from_double_with_significant_digits(double f, uint8_t digits)
Definition Decimal.hpp:138
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 icu4x::diplomat::result< std::unique_ptr< icu4x::Decimal >, icu4x::DecimalParseError > from_string(std::string_view v)
Definition Decimal.hpp:149
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
void round_with_mode(int16_t position, icu4x::DecimalSignedRoundingMode mode)
Definition Decimal.hpp:257
Definition diplomat_runtime.hpp:166
Definition Bidi.d.hpp:13
Definition DecimalLimitError.d.hpp:26