summaryrefslogtreecommitdiff
path: root/deps/icu-small/source/i18n/number_utypes.h
diff options
context:
space:
mode:
Diffstat (limited to 'deps/icu-small/source/i18n/number_utypes.h')
-rw-r--r--deps/icu-small/source/i18n/number_utypes.h51
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();
};