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 17U_NAMESPACE_BEGIN 18 19enum 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 */ 29struct 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 50U_NAMESPACE_END 51 52#endif 53 54#endif 55