1#ifndef ICU4X_Decimal_HPP
2#define ICU4X_Decimal_HPP
27 icu4x::capi::Decimal* icu4x_Decimal_from_int32_mv1(int32_t v);
29 icu4x::capi::Decimal* icu4x_Decimal_from_uint32_mv1(uint32_t v);
31 icu4x::capi::Decimal* icu4x_Decimal_from_int64_mv1(int64_t v);
33 icu4x::capi::Decimal* icu4x_Decimal_from_uint64_mv1(uint64_t v);
35 typedef struct icu4x_Decimal_from_double_with_integer_precision_mv1_result {
union {icu4x::capi::Decimal* ok; };
bool is_ok;} icu4x_Decimal_from_double_with_integer_precision_mv1_result;
36 icu4x_Decimal_from_double_with_integer_precision_mv1_result icu4x_Decimal_from_double_with_integer_precision_mv1(
double f);
38 typedef struct icu4x_Decimal_from_double_with_lower_magnitude_mv1_result {
union {icu4x::capi::Decimal* ok; };
bool is_ok;} icu4x_Decimal_from_double_with_lower_magnitude_mv1_result;
39 icu4x_Decimal_from_double_with_lower_magnitude_mv1_result icu4x_Decimal_from_double_with_lower_magnitude_mv1(
double f, int16_t magnitude);
41 typedef struct icu4x_Decimal_from_double_with_significant_digits_mv1_result {
union {icu4x::capi::Decimal* ok; };
bool is_ok;} icu4x_Decimal_from_double_with_significant_digits_mv1_result;
42 icu4x_Decimal_from_double_with_significant_digits_mv1_result icu4x_Decimal_from_double_with_significant_digits_mv1(
double f, uint8_t digits);
44 typedef struct icu4x_Decimal_from_double_with_round_trip_precision_mv1_result {
union {icu4x::capi::Decimal* ok; };
bool is_ok;} icu4x_Decimal_from_double_with_round_trip_precision_mv1_result;
45 icu4x_Decimal_from_double_with_round_trip_precision_mv1_result icu4x_Decimal_from_double_with_round_trip_precision_mv1(
double f);
47 typedef struct icu4x_Decimal_from_string_mv1_result {
union {icu4x::capi::Decimal* ok; icu4x::capi::DecimalParseError err;};
bool is_ok;} icu4x_Decimal_from_string_mv1_result;
48 icu4x_Decimal_from_string_mv1_result icu4x_Decimal_from_string_mv1(icu4x::diplomat::capi::DiplomatStringView v);
50 uint8_t icu4x_Decimal_digit_at_mv1(
const icu4x::capi::Decimal* self, int16_t magnitude);
52 int16_t icu4x_Decimal_magnitude_start_mv1(
const icu4x::capi::Decimal* self);
54 int16_t icu4x_Decimal_magnitude_end_mv1(
const icu4x::capi::Decimal* self);
56 int16_t icu4x_Decimal_nonzero_magnitude_start_mv1(
const icu4x::capi::Decimal* self);
58 int16_t icu4x_Decimal_nonzero_magnitude_end_mv1(
const icu4x::capi::Decimal* self);
60 bool icu4x_Decimal_is_zero_mv1(
const icu4x::capi::Decimal* self);
62 void icu4x_Decimal_multiply_pow10_mv1(icu4x::capi::Decimal* self, int16_t power);
64 icu4x::capi::DecimalSign icu4x_Decimal_sign_mv1(
const icu4x::capi::Decimal* self);
66 void icu4x_Decimal_set_sign_mv1(icu4x::capi::Decimal* self, icu4x::capi::DecimalSign sign);
68 void icu4x_Decimal_apply_sign_display_mv1(icu4x::capi::Decimal* self, icu4x::capi::DecimalSignDisplay sign_display);
70 void icu4x_Decimal_trim_start_mv1(icu4x::capi::Decimal* self);
72 void icu4x_Decimal_trim_end_mv1(icu4x::capi::Decimal* self);
74 void icu4x_Decimal_trim_end_if_integer_mv1(icu4x::capi::Decimal* self);
76 void icu4x_Decimal_pad_start_mv1(icu4x::capi::Decimal* self, int16_t position);
78 void icu4x_Decimal_pad_end_mv1(icu4x::capi::Decimal* self, int16_t position);
80 void icu4x_Decimal_set_max_position_mv1(icu4x::capi::Decimal* self, int16_t position);
82 void icu4x_Decimal_round_mv1(icu4x::capi::Decimal* self, int16_t position);
84 void icu4x_Decimal_ceil_mv1(icu4x::capi::Decimal* self, int16_t position);
86 void icu4x_Decimal_expand_mv1(icu4x::capi::Decimal* self, int16_t position);
88 void icu4x_Decimal_floor_mv1(icu4x::capi::Decimal* self, int16_t position);
90 void icu4x_Decimal_trunc_mv1(icu4x::capi::Decimal* self, int16_t position);
92 void icu4x_Decimal_round_with_mode_mv1(icu4x::capi::Decimal* self, int16_t position, icu4x::capi::DecimalSignedRoundingMode mode);
94 void icu4x_Decimal_round_with_mode_and_increment_mv1(icu4x::capi::Decimal* self, int16_t position, icu4x::capi::DecimalSignedRoundingMode mode, icu4x::capi::DecimalRoundingIncrement increment);
96 typedef struct icu4x_Decimal_concatenate_end_mv1_result {
bool is_ok;} icu4x_Decimal_concatenate_end_mv1_result;
97 icu4x_Decimal_concatenate_end_mv1_result icu4x_Decimal_concatenate_end_mv1(icu4x::capi::Decimal* self, icu4x::capi::Decimal* other);
99 void icu4x_Decimal_to_string_mv1(
const icu4x::capi::Decimal* self, icu4x::diplomat::capi::DiplomatWrite* write);
101 bool icu4x_Decimal_equals_mv1(
const icu4x::capi::Decimal* self,
const icu4x::capi::Decimal* other);
103 void icu4x_Decimal_destroy_mv1(Decimal* self);
110 auto result = icu4x::capi::icu4x_Decimal_from_int32_mv1(v);
111 return std::unique_ptr<icu4x::Decimal>(icu4x::Decimal::FromFFI(result));
115 auto result = icu4x::capi::icu4x_Decimal_from_uint32_mv1(v);
116 return std::unique_ptr<icu4x::Decimal>(icu4x::Decimal::FromFFI(result));
120 auto result = icu4x::capi::icu4x_Decimal_from_int64_mv1(v);
121 return std::unique_ptr<icu4x::Decimal>(icu4x::Decimal::FromFFI(result));
125 auto result = icu4x::capi::icu4x_Decimal_from_uint64_mv1(v);
126 return std::unique_ptr<icu4x::Decimal>(icu4x::Decimal::FromFFI(result));
130 auto result = icu4x::capi::icu4x_Decimal_from_double_with_integer_precision_mv1(f);
135 auto result = icu4x::capi::icu4x_Decimal_from_double_with_lower_magnitude_mv1(f,
141 auto result = icu4x::capi::icu4x_Decimal_from_double_with_significant_digits_mv1(f,
147 auto result = icu4x::capi::icu4x_Decimal_from_double_with_round_trip_precision_mv1(f);
152 auto result = icu4x::capi::icu4x_Decimal_from_string_mv1({v.data(), v.size()});
157 auto result = icu4x::capi::icu4x_Decimal_digit_at_mv1(this->AsFFI(),
163 auto result = icu4x::capi::icu4x_Decimal_magnitude_start_mv1(this->AsFFI());
168 auto result = icu4x::capi::icu4x_Decimal_magnitude_end_mv1(this->AsFFI());
173 auto result = icu4x::capi::icu4x_Decimal_nonzero_magnitude_start_mv1(this->AsFFI());
178 auto result = icu4x::capi::icu4x_Decimal_nonzero_magnitude_end_mv1(this->AsFFI());
183 auto result = icu4x::capi::icu4x_Decimal_is_zero_mv1(this->AsFFI());
188 icu4x::capi::icu4x_Decimal_multiply_pow10_mv1(this->AsFFI(),
193 auto result = icu4x::capi::icu4x_Decimal_sign_mv1(this->AsFFI());
194 return icu4x::DecimalSign::FromFFI(result);
198 icu4x::capi::icu4x_Decimal_set_sign_mv1(this->AsFFI(),
203 icu4x::capi::icu4x_Decimal_apply_sign_display_mv1(this->AsFFI(),
204 sign_display.AsFFI());
208 icu4x::capi::icu4x_Decimal_trim_start_mv1(this->AsFFI());
212 icu4x::capi::icu4x_Decimal_trim_end_mv1(this->AsFFI());
216 icu4x::capi::icu4x_Decimal_trim_end_if_integer_mv1(this->AsFFI());
220 icu4x::capi::icu4x_Decimal_pad_start_mv1(this->AsFFI(),
225 icu4x::capi::icu4x_Decimal_pad_end_mv1(this->AsFFI(),
230 icu4x::capi::icu4x_Decimal_set_max_position_mv1(this->AsFFI(),
235 icu4x::capi::icu4x_Decimal_round_mv1(this->AsFFI(),
240 icu4x::capi::icu4x_Decimal_ceil_mv1(this->AsFFI(),
245 icu4x::capi::icu4x_Decimal_expand_mv1(this->AsFFI(),
250 icu4x::capi::icu4x_Decimal_floor_mv1(this->AsFFI(),
255 icu4x::capi::icu4x_Decimal_trunc_mv1(this->AsFFI(),
260 icu4x::capi::icu4x_Decimal_round_with_mode_mv1(this->AsFFI(),
266 icu4x::capi::icu4x_Decimal_round_with_mode_and_increment_mv1(this->AsFFI(),
273 auto result = icu4x::capi::icu4x_Decimal_concatenate_end_mv1(this->AsFFI(),
280 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
281 icu4x::capi::icu4x_Decimal_to_string_mv1(this->AsFFI(),
288 icu4x::capi::icu4x_Decimal_to_string_mv1(this->AsFFI(),
293 auto result = icu4x::capi::icu4x_Decimal_equals_mv1(this->AsFFI(),
298inline const icu4x::capi::Decimal* icu4x::Decimal::AsFFI()
const {
299 return reinterpret_cast<const icu4x::capi::Decimal*
>(
this);
302inline icu4x::capi::Decimal* icu4x::Decimal::AsFFI() {
303 return reinterpret_cast<icu4x::capi::Decimal*
>(
this);
306inline const icu4x::Decimal* icu4x::Decimal::FromFFI(
const icu4x::capi::Decimal* ptr) {
310inline icu4x::Decimal* icu4x::Decimal::FromFFI(icu4x::capi::Decimal* ptr) {
314inline void icu4x::Decimal::operator
delete(
void* ptr) {
315 icu4x::capi::icu4x_Decimal_destroy_mv1(
reinterpret_cast<icu4x::capi::Decimal*
>(ptr));
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 DecimalLimitError.d.hpp:26
Definition diplomat_runtime.hpp:243
Definition diplomat_runtime.hpp:202