blob: d97eadc5cdb96efdd0b243d82e96f1f39e07f7b0 [file] [log] [blame]
Victor Chang73229502020-09-17 13:39:19 +01001// © 2018 and later: Unicode, Inc. and others.
2// License & terms of use: http://www.unicode.org/copyright.html
3
4#include "unicode/utypes.h"
5
6#if !UCONFIG_NO_FORMATTING
7#ifndef __SOURCE_NUMBER_UTYPES_H__
8#define __SOURCE_NUMBER_UTYPES_H__
9
10#include "unicode/numberformatter.h"
11#include "number_types.h"
12#include "number_decimalquantity.h"
13#include "formatted_string_builder.h"
14#include "formattedval_impl.h"
15
16U_NAMESPACE_BEGIN namespace number {
17namespace impl {
18
19
20/** Helper function used in upluralrules.cpp */
21const DecimalQuantity* validateUFormattedNumberToDecimalQuantity(
22 const UFormattedNumber* uresult, UErrorCode& status);
23
24
25/**
26 * Struct for data used by FormattedNumber.
27 *
28 * This struct is held internally by the C++ version FormattedNumber since the member types are not
29 * declared in the public header file.
30 *
Victor Changd8aa9d52021-01-05 23:49:57 +000031 * Exported as U_I18N_API for tests
Victor Chang73229502020-09-17 13:39:19 +010032 */
Victor Changd8aa9d52021-01-05 23:49:57 +000033class U_I18N_API UFormattedNumberData : public FormattedValueStringBuilderImpl {
Victor Chang73229502020-09-17 13:39:19 +010034public:
Victor Changd8aa9d52021-01-05 23:49:57 +000035 UFormattedNumberData() : FormattedValueStringBuilderImpl(kUndefinedField) {}
Victor Chang73229502020-09-17 13:39:19 +010036 virtual ~UFormattedNumberData();
37
Victor Changce4bf3c2021-01-19 16:34:24 +000038 // The formatted quantity.
Victor Chang73229502020-09-17 13:39:19 +010039 DecimalQuantity quantity;
Victor Changce4bf3c2021-01-19 16:34:24 +000040
41 // The output unit for the formatted quantity.
42 // TODO(units,hugovdm): populate this correctly for the general case - it's
43 // currently only implemented for the .usage() use case.
44 MeasureUnit outputUnit;
Victor Chang73229502020-09-17 13:39:19 +010045};
46
47
48} // namespace impl
49} // namespace number
50U_NAMESPACE_END
51
52#endif //__SOURCE_NUMBER_UTYPES_H__
53#endif /* #if !UCONFIG_NO_FORMATTING */