diff options
Diffstat (limited to 'deps/icu-small/source/i18n/number_utypes.h')
-rw-r--r-- | deps/icu-small/source/i18n/number_utypes.h | 51 |
1 files changed, 10 insertions, 41 deletions
diff --git a/deps/icu-small/source/i18n/number_utypes.h b/deps/icu-small/source/i18n/number_utypes.h index 48bfce1969..88b493cbc2 100644 --- a/deps/icu-small/source/i18n/number_utypes.h +++ b/deps/icu-small/source/i18n/number_utypes.h @@ -11,63 +11,32 @@ #include "number_types.h" #include "number_decimalquantity.h" #include "number_stringbuilder.h" +#include "formattedval_impl.h" U_NAMESPACE_BEGIN namespace number { namespace impl { -/** - * Implementation class for UNumberFormatter with a magic number for safety. - * - * Wraps a LocalizedNumberFormatter by value. - */ -struct UNumberFormatterData : public UMemory { - // The magic number to identify incoming objects. - // Reads in ASCII as "NFR" (NumberFormatteR with room at the end) - static constexpr int32_t kMagic = 0x4E465200; - - // Data members: - int32_t fMagic = kMagic; - LocalizedNumberFormatter fFormatter; - - /** Convert from UNumberFormatter -> UNumberFormatterData. */ - static UNumberFormatterData* validate(UNumberFormatter* input, UErrorCode& status); - - /** Convert from UNumberFormatter -> UNumberFormatterData (const version). */ - static const UNumberFormatterData* validate(const UNumberFormatter* input, UErrorCode& status); - - /** Convert from UNumberFormatterData -> UNumberFormatter. */ - UNumberFormatter* exportForC(); -}; +/** Helper function used in upluralrules.cpp */ +const DecimalQuantity* validateUFormattedNumberToDecimalQuantity( + const UFormattedNumber* uresult, UErrorCode& status); /** - * Implementation class for UFormattedNumber with magic number for safety. + * Struct for data used by FormattedNumber. * - * This struct is also held internally by the C++ version FormattedNumber since the member types are not + * This struct is held internally by the C++ version FormattedNumber since the member types are not * declared in the public header file. * * The DecimalQuantity is not currently being used by FormattedNumber, but at some point it could be used * to add a toDecNumber() or similar method. */ -struct UFormattedNumberData : public UMemory { - // The magic number to identify incoming objects. - // Reads in ASCII as "FDN" (FormatteDNumber with room at the end) - static constexpr int32_t kMagic = 0x46444E00; +class UFormattedNumberData : public FormattedValueNumberStringBuilderImpl { +public: + UFormattedNumberData() : FormattedValueNumberStringBuilderImpl(0) {} + virtual ~UFormattedNumberData(); - // Data members: - int32_t fMagic = kMagic; DecimalQuantity quantity; - NumberStringBuilder string; - - /** Convert from UFormattedNumber -> UFormattedNumberData. */ - static UFormattedNumberData* validate(UFormattedNumber* input, UErrorCode& status); - - /** Convert from UFormattedNumber -> UFormattedNumberData (const version). */ - static const UFormattedNumberData* validate(const UFormattedNumber* input, UErrorCode& status); - - /** Convert from UFormattedNumberData -> UFormattedNumber. */ - UFormattedNumber* exportForC(); }; |