1#ifndef ICU4X_DecimalFormatter_HPP
2#define ICU4X_DecimalFormatter_HPP
26 typedef struct icu4x_DecimalFormatter_create_with_grouping_strategy_mv1_result {
union {icu4x::capi::DecimalFormatter* ok; icu4x::capi::DataError err;};
bool is_ok;} icu4x_DecimalFormatter_create_with_grouping_strategy_mv1_result;
27 icu4x_DecimalFormatter_create_with_grouping_strategy_mv1_result icu4x_DecimalFormatter_create_with_grouping_strategy_mv1(
const icu4x::capi::Locale* locale, icu4x::capi::DecimalGroupingStrategy_option grouping_strategy);
29 typedef struct icu4x_DecimalFormatter_create_with_grouping_strategy_and_provider_mv1_result {
union {icu4x::capi::DecimalFormatter* ok; icu4x::capi::DataError err;};
bool is_ok;} icu4x_DecimalFormatter_create_with_grouping_strategy_and_provider_mv1_result;
30 icu4x_DecimalFormatter_create_with_grouping_strategy_and_provider_mv1_result icu4x_DecimalFormatter_create_with_grouping_strategy_and_provider_mv1(
const icu4x::capi::DataProvider* provider,
const icu4x::capi::Locale* locale, icu4x::capi::DecimalGroupingStrategy_option grouping_strategy);
32 typedef struct icu4x_DecimalFormatter_create_with_manual_data_mv1_result {
union {icu4x::capi::DecimalFormatter* ok; icu4x::capi::DataError err;};
bool is_ok;} icu4x_DecimalFormatter_create_with_manual_data_mv1_result;
33 icu4x_DecimalFormatter_create_with_manual_data_mv1_result icu4x_DecimalFormatter_create_with_manual_data_mv1(icu4x::diplomat::capi::DiplomatStringView plus_sign_prefix, icu4x::diplomat::capi::DiplomatStringView plus_sign_suffix, icu4x::diplomat::capi::DiplomatStringView minus_sign_prefix, icu4x::diplomat::capi::DiplomatStringView minus_sign_suffix, icu4x::diplomat::capi::DiplomatStringView decimal_separator, icu4x::diplomat::capi::DiplomatStringView grouping_separator, uint8_t primary_group_size, uint8_t secondary_group_size, uint8_t min_group_size, icu4x::diplomat::capi::DiplomatCharView digits, icu4x::capi::DecimalGroupingStrategy_option grouping_strategy);
35 void icu4x_DecimalFormatter_format_mv1(
const icu4x::capi::DecimalFormatter* self,
const icu4x::capi::Decimal* value, icu4x::diplomat::capi::DiplomatWrite* write);
37 void icu4x_DecimalFormatter_destroy_mv1(DecimalFormatter* self);
44 auto result = icu4x::capi::icu4x_DecimalFormatter_create_with_grouping_strategy_mv1(locale.AsFFI(),
45 grouping_strategy.has_value() ? (icu4x::capi::DecimalGroupingStrategy_option{ { grouping_strategy.value().AsFFI() },
true }) : (
icu4x::capi::DecimalGroupingStrategy_option{ {},
false }));
46 return result.is_ok ? icu4x::diplomat::result<std::unique_ptr<icu4x::DecimalFormatter>, icu4x::DataError>(icu4x::diplomat::Ok<std::unique_ptr<icu4x::DecimalFormatter>>(std::unique_ptr<icu4x::DecimalFormatter>(icu4x::DecimalFormatter::FromFFI(result.ok)))) : icu4x::
diplomat::result<std::unique_ptr<icu4x::
DecimalFormatter>, icu4x::
DataError>(icu4x::
diplomat::Err<icu4x::
DataError>(icu4x::
DataError::FromFFI(result.err)));
50 auto result = icu4x::capi::icu4x_DecimalFormatter_create_with_grouping_strategy_and_provider_mv1(provider.AsFFI(),
52 grouping_strategy.has_value() ? (icu4x::capi::DecimalGroupingStrategy_option{ { grouping_strategy.value().AsFFI() },
true }) : (
icu4x::capi::DecimalGroupingStrategy_option{ {},
false }));
53 return result.is_ok ? icu4x::diplomat::result<std::unique_ptr<icu4x::DecimalFormatter>, icu4x::DataError>(icu4x::diplomat::Ok<std::unique_ptr<icu4x::DecimalFormatter>>(std::unique_ptr<icu4x::DecimalFormatter>(icu4x::DecimalFormatter::FromFFI(result.ok)))) : icu4x::
diplomat::result<std::unique_ptr<icu4x::
DecimalFormatter>, icu4x::
DataError>(icu4x::
diplomat::Err<icu4x::
DataError>(icu4x::
DataError::FromFFI(result.err)));
56inline icu4x::diplomat::result<std::unique_ptr<icu4x::DecimalFormatter>,
icu4x::DataError>
icu4x::DecimalFormatter::create_with_manual_data(std::string_view plus_sign_prefix, std::string_view plus_sign_suffix, std::string_view minus_sign_prefix, std::string_view minus_sign_suffix, std::string_view decimal_separator, std::string_view grouping_separator, uint8_t primary_group_size, uint8_t secondary_group_size, uint8_t min_group_size,
icu4x::diplomat::span<const char32_t> digits, std::optional<icu4x::DecimalGroupingStrategy> grouping_strategy) {
57 auto result = icu4x::capi::icu4x_DecimalFormatter_create_with_manual_data_mv1({plus_sign_prefix.data(), plus_sign_prefix.size()},
58 {plus_sign_suffix.data(), plus_sign_suffix.size()},
59 {minus_sign_prefix.data(), minus_sign_prefix.size()},
60 {minus_sign_suffix.data(), minus_sign_suffix.size()},
61 {decimal_separator.data(), decimal_separator.size()},
62 {grouping_separator.data(), grouping_separator.size()},
67 grouping_strategy.has_value() ? (icu4x::capi::DecimalGroupingStrategy_option{ { grouping_strategy.value().AsFFI() },
true }) : (icu4x::capi::DecimalGroupingStrategy_option{ {},
false }));
73 icu4x::diplomat::capi::DiplomatWrite write = icu4x::diplomat::WriteFromString(output);
74 icu4x::capi::icu4x_DecimalFormatter_format_mv1(this->AsFFI(),
82 icu4x::capi::icu4x_DecimalFormatter_format_mv1(this->AsFFI(),
87inline const icu4x::capi::DecimalFormatter* icu4x::DecimalFormatter::AsFFI()
const {
88 return reinterpret_cast<const icu4x::capi::DecimalFormatter*
>(
this);
91inline icu4x::capi::DecimalFormatter* icu4x::DecimalFormatter::AsFFI() {
92 return reinterpret_cast<icu4x::capi::DecimalFormatter*
>(
this);
95inline const icu4x::DecimalFormatter* icu4x::DecimalFormatter::FromFFI(
const icu4x::capi::DecimalFormatter* ptr) {
96 return reinterpret_cast<const icu4x::DecimalFormatter*
>(ptr);
99inline icu4x::DecimalFormatter* icu4x::DecimalFormatter::FromFFI(icu4x::capi::DecimalFormatter* ptr) {
100 return reinterpret_cast<icu4x::DecimalFormatter*
>(ptr);
103inline void icu4x::DecimalFormatter::operator
delete(
void* ptr) {
104 icu4x::capi::icu4x_DecimalFormatter_destroy_mv1(
reinterpret_cast<icu4x::capi::DecimalFormatter*
>(ptr));
Definition DataError.d.hpp:37
Definition DataProvider.d.hpp:40
Definition Decimal.d.hpp:36
Definition Locale.d.hpp:33
Definition diplomat_runtime.hpp:166
Definition diplomat_runtime.hpp:252
constexpr T * data() const noexcept
Definition diplomat_runtime.hpp:263
constexpr size_t size() const noexcept
Definition diplomat_runtime.hpp:266
Definition diplomat_runtime.hpp:22
Definition diplomat_runtime.hpp:146
Definition diplomat_runtime.hpp:128
Definition diplomat_runtime.hpp:117