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