diff options
author | mcheshkov <mcheshkov@yandex-team.ru> | 2022-02-10 16:46:15 +0300 |
---|---|---|
committer | Daniil Cherednik <dcherednik@yandex-team.ru> | 2022-02-10 16:46:15 +0300 |
commit | e9d19cec64684c9c1e6b0c98297e5b895cf904fe (patch) | |
tree | 2768b1223e96a8a0610a93d18425d9647c1123c8 /contrib/libs/icu/i18n/formattedvalue.cpp | |
parent | 60040c91ffe701a84689b2c6310ff845e65cff42 (diff) | |
download | ydb-e9d19cec64684c9c1e6b0c98297e5b895cf904fe.tar.gz |
Restoring authorship annotation for <mcheshkov@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/icu/i18n/formattedvalue.cpp')
-rw-r--r-- | contrib/libs/icu/i18n/formattedvalue.cpp | 464 |
1 files changed, 232 insertions, 232 deletions
diff --git a/contrib/libs/icu/i18n/formattedvalue.cpp b/contrib/libs/icu/i18n/formattedvalue.cpp index e2c9c42fc8..aada0f903f 100644 --- a/contrib/libs/icu/i18n/formattedvalue.cpp +++ b/contrib/libs/icu/i18n/formattedvalue.cpp @@ -1,232 +1,232 @@ -// © 2018 and later: Unicode, Inc. and others. -// License & terms of use: http://www.unicode.org/copyright.html - -#include "unicode/utypes.h" - -#if !UCONFIG_NO_FORMATTING - -#include "unicode/formattedvalue.h" -#include "formattedval_impl.h" -#include "capi_helper.h" - -U_NAMESPACE_BEGIN - - -ConstrainedFieldPosition::ConstrainedFieldPosition() {} - -ConstrainedFieldPosition::~ConstrainedFieldPosition() {} - -void ConstrainedFieldPosition::reset() { - fContext = 0LL; - fField = 0; - fStart = 0; - fLimit = 0; - fConstraint = UCFPOS_CONSTRAINT_NONE; - fCategory = UFIELD_CATEGORY_UNDEFINED; -} - -void ConstrainedFieldPosition::constrainCategory(int32_t category) { - fConstraint = UCFPOS_CONSTRAINT_CATEGORY; - fCategory = category; -} - -void ConstrainedFieldPosition::constrainField(int32_t category, int32_t field) { - fConstraint = UCFPOS_CONSTRAINT_FIELD; - fCategory = category; - fField = field; -} - -void ConstrainedFieldPosition::setInt64IterationContext(int64_t context) { - fContext = context; -} - -UBool ConstrainedFieldPosition::matchesField(int32_t category, int32_t field) const { - switch (fConstraint) { - case UCFPOS_CONSTRAINT_NONE: - return TRUE; - case UCFPOS_CONSTRAINT_CATEGORY: - return fCategory == category; - case UCFPOS_CONSTRAINT_FIELD: - return fCategory == category && fField == field; - default: - UPRV_UNREACHABLE; - } -} - -void ConstrainedFieldPosition::setState( - int32_t category, - int32_t field, - int32_t start, - int32_t limit) { - fCategory = category; - fField = field; - fStart = start; - fLimit = limit; -} - - -FormattedValue::~FormattedValue() = default; - - -/////////////////////// -/// C API FUNCTIONS /// -/////////////////////// - -struct UConstrainedFieldPositionImpl : public UMemory, - // Magic number as ASCII == "UCF" - public IcuCApiHelper<UConstrainedFieldPosition, UConstrainedFieldPositionImpl, 0x55434600> { - ConstrainedFieldPosition fImpl; -}; - -U_CAPI UConstrainedFieldPosition* U_EXPORT2 -ucfpos_open(UErrorCode* ec) { - auto* impl = new UConstrainedFieldPositionImpl(); - if (impl == nullptr) { - *ec = U_MEMORY_ALLOCATION_ERROR; - return nullptr; - } - return impl->exportForC(); -} - -U_CAPI void U_EXPORT2 -ucfpos_reset(UConstrainedFieldPosition* ptr, UErrorCode* ec) { - auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); - if (U_FAILURE(*ec)) { - return; - } - impl->fImpl.reset(); -} - -U_CAPI void U_EXPORT2 -ucfpos_constrainCategory(UConstrainedFieldPosition* ptr, int32_t category, UErrorCode* ec) { - auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); - if (U_FAILURE(*ec)) { - return; - } - impl->fImpl.constrainCategory(category); -} - -U_CAPI void U_EXPORT2 -ucfpos_constrainField(UConstrainedFieldPosition* ptr, int32_t category, int32_t field, UErrorCode* ec) { - auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); - if (U_FAILURE(*ec)) { - return; - } - impl->fImpl.constrainField(category, field); -} - -U_CAPI int32_t U_EXPORT2 -ucfpos_getCategory(const UConstrainedFieldPosition* ptr, UErrorCode* ec) { - const auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); - if (U_FAILURE(*ec)) { - return UFIELD_CATEGORY_UNDEFINED; - } - return impl->fImpl.getCategory(); -} - -U_CAPI int32_t U_EXPORT2 -ucfpos_getField(const UConstrainedFieldPosition* ptr, UErrorCode* ec) { - const auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); - if (U_FAILURE(*ec)) { - return 0; - } - return impl->fImpl.getField(); -} - -U_CAPI void U_EXPORT2 -ucfpos_getIndexes(const UConstrainedFieldPosition* ptr, int32_t* pStart, int32_t* pLimit, UErrorCode* ec) { - const auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); - if (U_FAILURE(*ec)) { - return; - } - *pStart = impl->fImpl.getStart(); - *pLimit = impl->fImpl.getLimit(); -} - -U_CAPI int64_t U_EXPORT2 -ucfpos_getInt64IterationContext(const UConstrainedFieldPosition* ptr, UErrorCode* ec) { - const auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); - if (U_FAILURE(*ec)) { - return 0; - } - return impl->fImpl.getInt64IterationContext(); -} - -U_CAPI void U_EXPORT2 -ucfpos_setInt64IterationContext(UConstrainedFieldPosition* ptr, int64_t context, UErrorCode* ec) { - auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); - if (U_FAILURE(*ec)) { - return; - } - impl->fImpl.setInt64IterationContext(context); -} - -U_CAPI UBool U_EXPORT2 -ucfpos_matchesField(const UConstrainedFieldPosition* ptr, int32_t category, int32_t field, UErrorCode* ec) { - const auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); - if (U_FAILURE(*ec)) { - return 0; - } - return impl->fImpl.matchesField(category, field); -} - -U_CAPI void U_EXPORT2 -ucfpos_setState( - UConstrainedFieldPosition* ptr, - int32_t category, - int32_t field, - int32_t start, - int32_t limit, - UErrorCode* ec) { - auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); - if (U_FAILURE(*ec)) { - return; - } - impl->fImpl.setState(category, field, start, limit); -} - -U_CAPI void U_EXPORT2 -ucfpos_close(UConstrainedFieldPosition* ptr) { - UErrorCode localStatus = U_ZERO_ERROR; - auto* impl = UConstrainedFieldPositionImpl::validate(ptr, localStatus); - delete impl; -} - - -U_DRAFT const UChar* U_EXPORT2 -ufmtval_getString( - const UFormattedValue* ufmtval, - int32_t* pLength, - UErrorCode* ec) { - const auto* impl = UFormattedValueApiHelper::validate(ufmtval, *ec); - if (U_FAILURE(*ec)) { - return nullptr; - } - UnicodeString readOnlyAlias = impl->fFormattedValue->toTempString(*ec); - if (U_FAILURE(*ec)) { - return nullptr; - } - if (pLength != nullptr) { - *pLength = readOnlyAlias.length(); - } - return readOnlyAlias.getBuffer(); -} - - -U_DRAFT UBool U_EXPORT2 -ufmtval_nextPosition( - const UFormattedValue* ufmtval, - UConstrainedFieldPosition* ucfpos, - UErrorCode* ec) { - const auto* fmtval = UFormattedValueApiHelper::validate(ufmtval, *ec); - auto* cfpos = UConstrainedFieldPositionImpl::validate(ucfpos, *ec); - if (U_FAILURE(*ec)) { - return FALSE; - } - return fmtval->fFormattedValue->nextPosition(cfpos->fImpl, *ec); -} - - -U_NAMESPACE_END - -#endif /* #if !UCONFIG_NO_FORMATTING */ +// © 2018 and later: Unicode, Inc. and others. +// License & terms of use: http://www.unicode.org/copyright.html + +#include "unicode/utypes.h" + +#if !UCONFIG_NO_FORMATTING + +#include "unicode/formattedvalue.h" +#include "formattedval_impl.h" +#include "capi_helper.h" + +U_NAMESPACE_BEGIN + + +ConstrainedFieldPosition::ConstrainedFieldPosition() {} + +ConstrainedFieldPosition::~ConstrainedFieldPosition() {} + +void ConstrainedFieldPosition::reset() { + fContext = 0LL; + fField = 0; + fStart = 0; + fLimit = 0; + fConstraint = UCFPOS_CONSTRAINT_NONE; + fCategory = UFIELD_CATEGORY_UNDEFINED; +} + +void ConstrainedFieldPosition::constrainCategory(int32_t category) { + fConstraint = UCFPOS_CONSTRAINT_CATEGORY; + fCategory = category; +} + +void ConstrainedFieldPosition::constrainField(int32_t category, int32_t field) { + fConstraint = UCFPOS_CONSTRAINT_FIELD; + fCategory = category; + fField = field; +} + +void ConstrainedFieldPosition::setInt64IterationContext(int64_t context) { + fContext = context; +} + +UBool ConstrainedFieldPosition::matchesField(int32_t category, int32_t field) const { + switch (fConstraint) { + case UCFPOS_CONSTRAINT_NONE: + return TRUE; + case UCFPOS_CONSTRAINT_CATEGORY: + return fCategory == category; + case UCFPOS_CONSTRAINT_FIELD: + return fCategory == category && fField == field; + default: + UPRV_UNREACHABLE; + } +} + +void ConstrainedFieldPosition::setState( + int32_t category, + int32_t field, + int32_t start, + int32_t limit) { + fCategory = category; + fField = field; + fStart = start; + fLimit = limit; +} + + +FormattedValue::~FormattedValue() = default; + + +/////////////////////// +/// C API FUNCTIONS /// +/////////////////////// + +struct UConstrainedFieldPositionImpl : public UMemory, + // Magic number as ASCII == "UCF" + public IcuCApiHelper<UConstrainedFieldPosition, UConstrainedFieldPositionImpl, 0x55434600> { + ConstrainedFieldPosition fImpl; +}; + +U_CAPI UConstrainedFieldPosition* U_EXPORT2 +ucfpos_open(UErrorCode* ec) { + auto* impl = new UConstrainedFieldPositionImpl(); + if (impl == nullptr) { + *ec = U_MEMORY_ALLOCATION_ERROR; + return nullptr; + } + return impl->exportForC(); +} + +U_CAPI void U_EXPORT2 +ucfpos_reset(UConstrainedFieldPosition* ptr, UErrorCode* ec) { + auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); + if (U_FAILURE(*ec)) { + return; + } + impl->fImpl.reset(); +} + +U_CAPI void U_EXPORT2 +ucfpos_constrainCategory(UConstrainedFieldPosition* ptr, int32_t category, UErrorCode* ec) { + auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); + if (U_FAILURE(*ec)) { + return; + } + impl->fImpl.constrainCategory(category); +} + +U_CAPI void U_EXPORT2 +ucfpos_constrainField(UConstrainedFieldPosition* ptr, int32_t category, int32_t field, UErrorCode* ec) { + auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); + if (U_FAILURE(*ec)) { + return; + } + impl->fImpl.constrainField(category, field); +} + +U_CAPI int32_t U_EXPORT2 +ucfpos_getCategory(const UConstrainedFieldPosition* ptr, UErrorCode* ec) { + const auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); + if (U_FAILURE(*ec)) { + return UFIELD_CATEGORY_UNDEFINED; + } + return impl->fImpl.getCategory(); +} + +U_CAPI int32_t U_EXPORT2 +ucfpos_getField(const UConstrainedFieldPosition* ptr, UErrorCode* ec) { + const auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); + if (U_FAILURE(*ec)) { + return 0; + } + return impl->fImpl.getField(); +} + +U_CAPI void U_EXPORT2 +ucfpos_getIndexes(const UConstrainedFieldPosition* ptr, int32_t* pStart, int32_t* pLimit, UErrorCode* ec) { + const auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); + if (U_FAILURE(*ec)) { + return; + } + *pStart = impl->fImpl.getStart(); + *pLimit = impl->fImpl.getLimit(); +} + +U_CAPI int64_t U_EXPORT2 +ucfpos_getInt64IterationContext(const UConstrainedFieldPosition* ptr, UErrorCode* ec) { + const auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); + if (U_FAILURE(*ec)) { + return 0; + } + return impl->fImpl.getInt64IterationContext(); +} + +U_CAPI void U_EXPORT2 +ucfpos_setInt64IterationContext(UConstrainedFieldPosition* ptr, int64_t context, UErrorCode* ec) { + auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); + if (U_FAILURE(*ec)) { + return; + } + impl->fImpl.setInt64IterationContext(context); +} + +U_CAPI UBool U_EXPORT2 +ucfpos_matchesField(const UConstrainedFieldPosition* ptr, int32_t category, int32_t field, UErrorCode* ec) { + const auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); + if (U_FAILURE(*ec)) { + return 0; + } + return impl->fImpl.matchesField(category, field); +} + +U_CAPI void U_EXPORT2 +ucfpos_setState( + UConstrainedFieldPosition* ptr, + int32_t category, + int32_t field, + int32_t start, + int32_t limit, + UErrorCode* ec) { + auto* impl = UConstrainedFieldPositionImpl::validate(ptr, *ec); + if (U_FAILURE(*ec)) { + return; + } + impl->fImpl.setState(category, field, start, limit); +} + +U_CAPI void U_EXPORT2 +ucfpos_close(UConstrainedFieldPosition* ptr) { + UErrorCode localStatus = U_ZERO_ERROR; + auto* impl = UConstrainedFieldPositionImpl::validate(ptr, localStatus); + delete impl; +} + + +U_DRAFT const UChar* U_EXPORT2 +ufmtval_getString( + const UFormattedValue* ufmtval, + int32_t* pLength, + UErrorCode* ec) { + const auto* impl = UFormattedValueApiHelper::validate(ufmtval, *ec); + if (U_FAILURE(*ec)) { + return nullptr; + } + UnicodeString readOnlyAlias = impl->fFormattedValue->toTempString(*ec); + if (U_FAILURE(*ec)) { + return nullptr; + } + if (pLength != nullptr) { + *pLength = readOnlyAlias.length(); + } + return readOnlyAlias.getBuffer(); +} + + +U_DRAFT UBool U_EXPORT2 +ufmtval_nextPosition( + const UFormattedValue* ufmtval, + UConstrainedFieldPosition* ucfpos, + UErrorCode* ec) { + const auto* fmtval = UFormattedValueApiHelper::validate(ufmtval, *ec); + auto* cfpos = UConstrainedFieldPositionImpl::validate(ucfpos, *ec); + if (U_FAILURE(*ec)) { + return FALSE; + } + return fmtval->fFormattedValue->nextPosition(cfpos->fImpl, *ec); +} + + +U_NAMESPACE_END + +#endif /* #if !UCONFIG_NO_FORMATTING */ |