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