// Convention: bottom 4 bits for field, top 4 bits for field category. // Field category 0 implies the number category so that the number field // literals can be directly passed as a Field type. // Exported as U_I18N_API so it can be used by other exports on Windows. struct U_I18N_API Field {
uint8_t bits;
/** Appends a UTF-16 code unit. */ inline int32_t appendChar16(char16_t codeUnit, Field field, UErrorCode& status) { // appendCodePoint handles both code units and code points. return insertCodePoint(fLength, codeUnit, field, status);
}
/** Inserts a UTF-16 code unit. Note: insert at index 0 is very efficient. */ inline int32_t insertChar16(int32_t index, char16_t codeUnit, Field field, UErrorCode& status) { // insertCodePoint handles both code units and code points. return insertCodePoint(index, codeUnit, field, status);
}
/** Inserts a Unicode code point. Note: insert at index 0 is very efficient. */
int32_t insertCodePoint(int32_t index, UChar32 codePoint, Field field, UErrorCode &status);
/** Inserts a string. Note: insert at index 0 is very efficient. */
int32_t insert(int32_t index, const UnicodeString &unistr, Field field, UErrorCode &status);
/** Inserts a substring. Note: insert at index 0 is very efficient. * *@paramstartStartindexofthesubstringofunistrtobeinserted. *@paramendEndindexofthesubstringofunistrtobeinserted(exclusive).
*/
int32_t insert(int32_t index, const UnicodeString &unistr, int32_t start, int32_t end, Field field,
UErrorCode &status);
/** Deletes a substring and then inserts a string at that same position. *SimilartoJavaScriptArray.prototype.splice(). * *@paramstartThisStartofthespantodelete. *@paramendThisEndofthespantodelete(exclusive). *@paramunistrThestringtoinsertatthedeletionposition. *@paramstartOtherStartindexofthesubstringofunistrtobeinserted. *@paramendOtherEndindexofthesubstringofunistrtobeinserted(exclusive).
*/
int32_t splice(int32_t startThis, int32_t endThis, const UnicodeString &unistr,
int32_t startOther, int32_t endOther, Field field, UErrorCode& status);
/** Inserts a formatted string. Note: insert at index 0 is very efficient. */
int32_t insert(int32_t index, const FormattedStringBuilder &other, UErrorCode &status);
static_assert( // std::is_pod<> is deprecated.
std::is_standard_layout_v<FormattedStringBuilder::Field> &&
std::is_trivial_v<FormattedStringBuilder::Field>, "Field should be a POD type for efficient initialization");
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.