summaryrefslogtreecommitdiffstats
path: root/intl/icu/source/i18n/numparse_utils.h
diff options
context:
space:
mode:
Diffstat (limited to 'intl/icu/source/i18n/numparse_utils.h')
-rw-r--r--intl/icu/source/i18n/numparse_utils.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/intl/icu/source/i18n/numparse_utils.h b/intl/icu/source/i18n/numparse_utils.h
new file mode 100644
index 0000000000..8fda4f4369
--- /dev/null
+++ b/intl/icu/source/i18n/numparse_utils.h
@@ -0,0 +1,43 @@
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#include "unicode/utypes.h"
+
+#if !UCONFIG_NO_FORMATTING
+#ifndef __NUMPARSE_UTILS_H__
+#define __NUMPARSE_UTILS_H__
+
+#include "numparse_types.h"
+#include "unicode/uniset.h"
+
+U_NAMESPACE_BEGIN namespace numparse {
+namespace impl {
+namespace utils {
+
+
+inline static void putLeadCodePoints(const UnicodeSet* input, UnicodeSet* output) {
+ for (int32_t i = 0; i < input->getRangeCount(); i++) {
+ output->add(input->getRangeStart(i), input->getRangeEnd(i));
+ }
+ // TODO: ANDY: How to iterate over the strings in ICU4C UnicodeSet?
+}
+
+inline static void putLeadCodePoint(const UnicodeString& input, UnicodeSet* output) {
+ if (!input.isEmpty()) {
+ output->add(input.char32At(0));
+ }
+}
+
+inline static void copyCurrencyCode(char16_t* dest, const char16_t* src) {
+ uprv_memcpy(dest, src, sizeof(char16_t) * 3);
+ dest[3] = 0;
+}
+
+
+} // namespace utils
+} // namespace impl
+} // namespace numparse
+U_NAMESPACE_END
+
+#endif //__NUMPARSE_UTILS_H__
+#endif /* #if !UCONFIG_NO_FORMATTING */