164339d36f8bd4db5025fe2988eda22b491a9219cFredrik Roubert// Copyright (C) 2016 and later: Unicode, Inc. and others. 264339d36f8bd4db5025fe2988eda22b491a9219cFredrik Roubert// License & terms of use: http://www.unicode.org/copyright.html 3103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius/* 4103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius******************************************************************************** 5fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius* Copyright (C) 2012-2014, International Business Machines 6103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius* Corporation and others. All Rights Reserved. 7103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius********************************************************************************/ 8103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius 9103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius#ifndef DCFMTIMP_H 10103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius#define DCFMTIMP_H 11103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius 12103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius#include "unicode/utypes.h" 13103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius 14103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius 15103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius#if UCONFIG_FORMAT_FASTPATHS_49 16103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius 17103e9ffba2cba345d0078eb8b8db33249f81840aCraig CorneliusU_NAMESPACE_BEGIN 18103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius 19103e9ffba2cba345d0078eb8b8db33249f81840aCraig Corneliusenum EDecimalFormatFastpathStatus { 20103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius kFastpathNO = 0, 21103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius kFastpathYES = 1, 22f9878a236aa0d9662d8e40cafdaf2e04cd615835ccornelius kFastpathUNKNOWN = 2, /* not yet set */ 23f9878a236aa0d9662d8e40cafdaf2e04cd615835ccornelius kFastpathMAYBE = 3 /* depends on value being formatted. */ 24103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius}; 25103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius 26103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius/** 27103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius * Must be smaller than DecimalFormat::fReserved 28103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius */ 29103e9ffba2cba345d0078eb8b8db33249f81840aCraig Corneliusstruct DecimalFormatInternal { 3054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius uint8_t fFastFormatStatus; 3154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius uint8_t fFastParseStatus; 32fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius 33fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius DecimalFormatInternal &operator=(const DecimalFormatInternal& rhs) { 34fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius fFastParseStatus = rhs.fFastParseStatus; 35fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius fFastFormatStatus = rhs.fFastFormatStatus; 36fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius return *this; 37fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius } 38103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius#ifdef FMT_DEBUG 39103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius void dump() const { 4054dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius printf("DecimalFormatInternal: fFastFormatStatus=%c, fFastParseStatus=%c\n", 4154dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius "NY?"[(int)fFastFormatStatus&3], 4254dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius "NY?"[(int)fFastParseStatus&3] 4354dcd9b6a06071f647dac967e9e267abb9410720Craig Cornelius ); 44103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius } 45fceb39872958b9fa2505e63f8b8699a9e0f882f4ccornelius#endif 46103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius}; 47103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius 48103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius 49103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius 50103e9ffba2cba345d0078eb8b8db33249f81840aCraig CorneliusU_NAMESPACE_END 51103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius 52103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius#endif 53103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius 54103e9ffba2cba345d0078eb8b8db33249f81840aCraig Cornelius#endif 55