���� JFIF �� � ( %"1"%)+...383,7(-.-
![]() Server : Apache/2.4.6 (CentOS) OpenSSL/1.0.2k-fips PHP/7.4.20 System : Linux st2.domain.com 3.10.0-1127.10.1.el7.x86_64 #1 SMP Wed Jun 3 14:28:03 UTC 2020 x86_64 User : apache ( 48) PHP Version : 7.4.20 Disable Function : NONE Directory : /proc/self/root/home/real/node-v13.0.1/deps/icu-small/source/i18n/ |
// © 2017 and later: Unicode, Inc. and others. // License & terms of use: http://www.unicode.org/copyright.html #include "unicode/utypes.h" #if !UCONFIG_NO_FORMATTING #ifndef __NUMBER_COMPACT_H__ #define __NUMBER_COMPACT_H__ #include "standardplural.h" #include "number_types.h" #include "unicode/unum.h" #include "uvector.h" #include "resource.h" #include "number_patternmodifier.h" U_NAMESPACE_BEGIN namespace number { namespace impl { static const int32_t COMPACT_MAX_DIGITS = 15; class CompactData : public MultiplierProducer { public: CompactData(); void populate(const Locale &locale, const char *nsName, CompactStyle compactStyle, CompactType compactType, UErrorCode &status); int32_t getMultiplier(int32_t magnitude) const U_OVERRIDE; const UChar *getPattern(int32_t magnitude, StandardPlural::Form plural) const; void getUniquePatterns(UVector &output, UErrorCode &status) const; private: const UChar *patterns[(COMPACT_MAX_DIGITS + 1) * StandardPlural::COUNT]; int8_t multipliers[COMPACT_MAX_DIGITS + 1]; int8_t largestMagnitude; UBool isEmpty; class CompactDataSink : public ResourceSink { public: explicit CompactDataSink(CompactData &data) : data(data) {} void put(const char *key, ResourceValue &value, UBool /*noFallback*/, UErrorCode &status) U_OVERRIDE; private: CompactData &data; }; }; struct CompactModInfo { const ImmutablePatternModifier *mod; const UChar* patternString; }; class CompactHandler : public MicroPropsGenerator, public UMemory { public: CompactHandler(CompactStyle compactStyle, const Locale &locale, const char *nsName, CompactType compactType, const PluralRules *rules, MutablePatternModifier *buildReference, const MicroPropsGenerator *parent, UErrorCode &status); ~CompactHandler() U_OVERRIDE; void processQuantity(DecimalQuantity &quantity, MicroProps µs, UErrorCode &status) const U_OVERRIDE; private: const PluralRules *rules; const MicroPropsGenerator *parent; // Initial capacity of 12 for 0K, 00K, 000K, ...M, ...B, and ...T MaybeStackArray<CompactModInfo, 12> precomputedMods; int32_t precomputedModsLength = 0; CompactData data; ParsedPatternInfo unsafePatternInfo; UBool safe; /** Used by the safe code path */ void precomputeAllModifiers(MutablePatternModifier &buildReference, UErrorCode &status); }; } // namespace impl } // namespace number U_NAMESPACE_END #endif //__NUMBER_COMPACT_H__ #endif /* #if !UCONFIG_NO_FORMATTING */