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 37 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