Home | History | Annotate | Download | only in i18n
      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