#include "unicode/utypes.h"
#if !UCONFIG_NO_FORMATTING
#include "umutex.h"
#include "ucln_cmn.h"
#include "ucln_in.h"
#include "number_modifiers.h"
usingnamespaceicu;
usingnamespaceicu::number;
usingnamespaceicu::number::impl;
namespace {
const int32_t ARG_NUM_LIMIT = …;
icu::UInitOnce gDefaultCurrencySpacingInitOnce { … };
UnicodeSet *UNISET_DIGIT = …;
UnicodeSet *UNISET_NOTSZ = …;
UBool U_CALLCONV cleanupDefaultCurrencySpacing() { … }
void U_CALLCONV initDefaultCurrencySpacing(UErrorCode &status) { … }
}
Modifier::~Modifier() = default;
Modifier::Parameters::Parameters()
: … { … }
Modifier::Parameters::Parameters(
const ModifierStore* _obj, Signum _signum, StandardPlural::Form _plural)
: … { … }
ModifierStore::~ModifierStore() = default;
AdoptingSignumModifierStore::~AdoptingSignumModifierStore() { … }
AdoptingSignumModifierStore&
AdoptingSignumModifierStore::operator=(AdoptingSignumModifierStore&& other) noexcept { … }
int32_t ConstantAffixModifier::apply(FormattedStringBuilder &output, int leftIndex, int rightIndex,
UErrorCode &status) const { … }
int32_t ConstantAffixModifier::getPrefixLength() const { … }
int32_t ConstantAffixModifier::getCodePointCount() const { … }
bool ConstantAffixModifier::isStrong() const { … }
bool ConstantAffixModifier::containsField(Field field) const { … }
void ConstantAffixModifier::getParameters(Parameters& output) const { … }
bool ConstantAffixModifier::semanticallyEquivalent(const Modifier& other) const { … }
SimpleModifier::SimpleModifier(const SimpleFormatter &simpleFormatter, Field field, bool strong)
: … { … }
SimpleModifier::SimpleModifier(const SimpleFormatter &simpleFormatter, Field field, bool strong,
const Modifier::Parameters parameters)
: … { … }
SimpleModifier::SimpleModifier()
: … { … }
int32_t SimpleModifier::apply(FormattedStringBuilder &output, int leftIndex, int rightIndex,
UErrorCode &status) const { … }
int32_t SimpleModifier::getPrefixLength() const { … }
int32_t SimpleModifier::getCodePointCount() const { … }
bool SimpleModifier::isStrong() const { … }
bool SimpleModifier::containsField(Field field) const { … }
void SimpleModifier::getParameters(Parameters& output) const { … }
bool SimpleModifier::semanticallyEquivalent(const Modifier& other) const { … }
int32_t
SimpleModifier::formatAsPrefixSuffix(FormattedStringBuilder &result, int32_t startIndex, int32_t endIndex,
UErrorCode &status) const { … }
int32_t
SimpleModifier::formatTwoArgPattern(const SimpleFormatter& compiled, FormattedStringBuilder& result,
int32_t index, int32_t* outPrefixLength, int32_t* outSuffixLength,
Field field, UErrorCode& status) { … }
int32_t ConstantMultiFieldModifier::apply(FormattedStringBuilder &output, int leftIndex, int rightIndex,
UErrorCode &status) const { … }
int32_t ConstantMultiFieldModifier::getPrefixLength() const { … }
int32_t ConstantMultiFieldModifier::getCodePointCount() const { … }
bool ConstantMultiFieldModifier::isStrong() const { … }
bool ConstantMultiFieldModifier::containsField(Field field) const { … }
void ConstantMultiFieldModifier::getParameters(Parameters& output) const { … }
bool ConstantMultiFieldModifier::semanticallyEquivalent(const Modifier& other) const { … }
CurrencySpacingEnabledModifier::CurrencySpacingEnabledModifier(const FormattedStringBuilder &prefix,
const FormattedStringBuilder &suffix,
bool overwrite,
bool strong,
const DecimalFormatSymbols &symbols,
UErrorCode &status)
: … { … }
int32_t CurrencySpacingEnabledModifier::apply(FormattedStringBuilder &output, int leftIndex, int rightIndex,
UErrorCode &status) const { … }
int32_t
CurrencySpacingEnabledModifier::applyCurrencySpacing(FormattedStringBuilder &output, int32_t prefixStart,
int32_t prefixLen, int32_t suffixStart,
int32_t suffixLen,
const DecimalFormatSymbols &symbols,
UErrorCode &status) { … }
int32_t
CurrencySpacingEnabledModifier::applyCurrencySpacingAffix(FormattedStringBuilder &output, int32_t index,
EAffix affix,
const DecimalFormatSymbols &symbols,
UErrorCode &status) { … }
UnicodeSet
CurrencySpacingEnabledModifier::getUnicodeSet(const DecimalFormatSymbols &symbols, EPosition position,
EAffix affix, UErrorCode &status) { … }
UnicodeString
CurrencySpacingEnabledModifier::getInsertString(const DecimalFormatSymbols &symbols, EAffix affix,
UErrorCode &status) { … }
#endif