1 /*
2 ********************************************************************************
3 *   Copyright (C) 2012-2014, International Business Machines
4 *   Corporation and others.  All Rights Reserved.
5 ********************************************************************************/
6 
7 #ifndef DCFMTIMP_H
8 #define DCFMTIMP_H
9 
10 #include "unicode/utypes.h"
11 
12 
13 #if UCONFIG_FORMAT_FASTPATHS_49
14 
15 U_NAMESPACE_BEGIN
16 
17 enum EDecimalFormatFastpathStatus {
18   kFastpathNO = 0,
19   kFastpathYES = 1,
20   kFastpathUNKNOWN = 2, /* not yet set */
21   kFastpathMAYBE = 3 /* depends on value being formatted. */
22 };
23 
24 /**
25  * Must be smaller than DecimalFormat::fReserved
26  */
27 struct DecimalFormatInternal {
28   uint8_t    fFastFormatStatus;
29   uint8_t    fFastParseStatus;
30 
31   DecimalFormatInternal &operator=(const DecimalFormatInternal& rhs) {
32     fFastParseStatus = rhs.fFastParseStatus;
33     fFastFormatStatus = rhs.fFastFormatStatus;
34     return *this;
35   }
36 #ifdef FMT_DEBUG
dumpDecimalFormatInternal37   void dump() const {
38     printf("DecimalFormatInternal: fFastFormatStatus=%c, fFastParseStatus=%c\n",
39            "NY?"[(int)fFastFormatStatus&3],
40            "NY?"[(int)fFastParseStatus&3]
41            );
42   }
43 #endif
44 };
45 
46 
47 
48 U_NAMESPACE_END
49 
50 #endif
51 
52 #endif
53