summaryrefslogtreecommitdiff
path: root/deps/icu-small/source/i18n/number_output.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'deps/icu-small/source/i18n/number_output.cpp')
-rw-r--r--deps/icu-small/source/i18n/number_output.cpp50
1 files changed, 50 insertions, 0 deletions
diff --git a/deps/icu-small/source/i18n/number_output.cpp b/deps/icu-small/source/i18n/number_output.cpp
new file mode 100644
index 0000000000..6f4e248204
--- /dev/null
+++ b/deps/icu-small/source/i18n/number_output.cpp
@@ -0,0 +1,50 @@
+// © 2019 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "unicode/numberformatter.h"
+#include "number_utypes.h"
+#include "util.h"
+#include "number_decimalquantity.h"
+
+U_NAMESPACE_BEGIN
+namespace number {
+
+
+UPRV_FORMATTED_VALUE_SUBCLASS_AUTO_IMPL(FormattedNumber)
+
+#define UPRV_NOARG
+
+UBool FormattedNumber::nextFieldPosition(FieldPosition& fieldPosition, UErrorCode& status) const {
+ UPRV_FORMATTED_VALUE_METHOD_GUARD(FALSE)
+ // NOTE: MSVC sometimes complains when implicitly converting between bool and UBool
+ return fData->getStringRef().nextFieldPosition(fieldPosition, status) ? TRUE : FALSE;
+}
+
+void FormattedNumber::getAllFieldPositions(FieldPositionIterator& iterator, UErrorCode& status) const {
+ FieldPositionIteratorHandler fpih(&iterator, status);
+ getAllFieldPositionsImpl(fpih, status);
+}
+
+void FormattedNumber::getAllFieldPositionsImpl(FieldPositionIteratorHandler& fpih,
+ UErrorCode& status) const {
+ UPRV_FORMATTED_VALUE_METHOD_GUARD(UPRV_NOARG)
+ fData->getStringRef().getAllFieldPositions(fpih, status);
+}
+
+void FormattedNumber::getDecimalQuantity(impl::DecimalQuantity& output, UErrorCode& status) const {
+ UPRV_FORMATTED_VALUE_METHOD_GUARD(UPRV_NOARG)
+ output = fData->quantity;
+}
+
+
+impl::UFormattedNumberData::~UFormattedNumberData() = default;
+
+
+} // namespace number
+U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_FORMATTING */