aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/libs/icu/include/unicode/formattedvalue.h
diff options
context:
space:
mode:
authormcheshkov <mcheshkov@yandex-team.ru>2022-02-10 16:46:15 +0300
committerDaniil Cherednik <dcherednik@yandex-team.ru>2022-02-10 16:46:15 +0300
commite9d19cec64684c9c1e6b0c98297e5b895cf904fe (patch)
tree2768b1223e96a8a0610a93d18425d9647c1123c8 /contrib/libs/icu/include/unicode/formattedvalue.h
parent60040c91ffe701a84689b2c6310ff845e65cff42 (diff)
downloadydb-e9d19cec64684c9c1e6b0c98297e5b895cf904fe.tar.gz
Restoring authorship annotation for <mcheshkov@yandex-team.ru>. Commit 1 of 2.
Diffstat (limited to 'contrib/libs/icu/include/unicode/formattedvalue.h')
-rw-r--r--contrib/libs/icu/include/unicode/formattedvalue.h634
1 files changed, 317 insertions, 317 deletions
diff --git a/contrib/libs/icu/include/unicode/formattedvalue.h b/contrib/libs/icu/include/unicode/formattedvalue.h
index e7ba4ec245..a58a43dca4 100644
--- a/contrib/libs/icu/include/unicode/formattedvalue.h
+++ b/contrib/libs/icu/include/unicode/formattedvalue.h
@@ -1,318 +1,318 @@
-// © 2018 and later: Unicode, Inc. and others.
-// License & terms of use: http://www.unicode.org/copyright.html
-
-#ifndef __FORMATTEDVALUE_H__
-#define __FORMATTEDVALUE_H__
-
-#include "unicode/utypes.h"
-
-#if U_SHOW_CPLUSPLUS_API
-
-#if !UCONFIG_NO_FORMATTING
-
-#include "unicode/appendable.h"
-#include "unicode/fpositer.h"
-#include "unicode/unistr.h"
-#include "unicode/uformattedvalue.h"
-
-U_NAMESPACE_BEGIN
-
-/**
- * \file
- * \brief C++ API: Abstract operations for localized strings.
+// © 2018 and later: Unicode, Inc. and others.
+// License & terms of use: http://www.unicode.org/copyright.html
+
+#ifndef __FORMATTEDVALUE_H__
+#define __FORMATTEDVALUE_H__
+
+#include "unicode/utypes.h"
+
+#if U_SHOW_CPLUSPLUS_API
+
+#if !UCONFIG_NO_FORMATTING
+
+#include "unicode/appendable.h"
+#include "unicode/fpositer.h"
+#include "unicode/unistr.h"
+#include "unicode/uformattedvalue.h"
+
+U_NAMESPACE_BEGIN
+
+/**
+ * \file
+ * \brief C++ API: Abstract operations for localized strings.
+ *
+ * This file contains declarations for classes that deal with formatted strings. A number
+ * of APIs throughout ICU use these classes for expressing their localized output.
+ */
+
+/**
+ * Represents a span of a string containing a given field.
*
- * This file contains declarations for classes that deal with formatted strings. A number
- * of APIs throughout ICU use these classes for expressing their localized output.
- */
-
-/**
- * Represents a span of a string containing a given field.
- *
- * This class differs from FieldPosition in the following ways:
- *
- * 1. It has information on the field category.
- * 2. It allows you to set constraints to use when iterating over field positions.
- * 3. It is used for the newer FormattedValue APIs.
- *
- * This class is not intended for public subclassing.
- *
- * @stable ICU 64
- */
-class U_I18N_API ConstrainedFieldPosition : public UMemory {
- public:
-
- /**
- * Initializes a ConstrainedFieldPosition.
- *
- * By default, the ConstrainedFieldPosition has no iteration constraints.
- *
- * @stable ICU 64
- */
- ConstrainedFieldPosition();
-
- /** @stable ICU 64 */
- ~ConstrainedFieldPosition();
-
- /**
- * Resets this ConstrainedFieldPosition to its initial state, as if it were newly created:
- *
- * - Removes any constraints that may have been set on the instance.
- * - Resets the iteration position.
- *
- * @stable ICU 64
- */
- void reset();
-
- /**
- * Sets a constraint on the field category.
- *
- * When this instance of ConstrainedFieldPosition is passed to FormattedValue#nextPosition,
- * positions are skipped unless they have the given category.
- *
- * Any previously set constraints are cleared.
- *
- * For example, to loop over only the number-related fields:
- *
- * ConstrainedFieldPosition cfpos;
- * cfpos.constrainCategory(UFIELDCATEGORY_NUMBER_FORMAT);
- * while (fmtval.nextPosition(cfpos, status)) {
- * // handle the number-related field position
- * }
- *
- * Changing the constraint while in the middle of iterating over a FormattedValue
- * does not generally have well-defined behavior.
- *
- * @param category The field category to fix when iterating.
- * @stable ICU 64
- */
- void constrainCategory(int32_t category);
-
- /**
- * Sets a constraint on the category and field.
- *
- * When this instance of ConstrainedFieldPosition is passed to FormattedValue#nextPosition,
- * positions are skipped unless they have the given category and field.
- *
- * Any previously set constraints are cleared.
- *
- * For example, to loop over all grouping separators:
- *
- * ConstrainedFieldPosition cfpos;
- * cfpos.constrainField(UFIELDCATEGORY_NUMBER_FORMAT, UNUM_GROUPING_SEPARATOR_FIELD);
- * while (fmtval.nextPosition(cfpos, status)) {
- * // handle the grouping separator position
- * }
- *
- * Changing the constraint while in the middle of iterating over a FormattedValue
- * does not generally have well-defined behavior.
- *
- * @param category The field category to fix when iterating.
- * @param field The field to fix when iterating.
- * @stable ICU 64
- */
- void constrainField(int32_t category, int32_t field);
-
- /**
- * Gets the field category for the current position.
- *
- * The return value is well-defined only after
- * FormattedValue#nextPosition returns TRUE.
- *
- * @return The field category saved in the instance.
- * @stable ICU 64
- */
- inline int32_t getCategory() const {
- return fCategory;
- }
-
- /**
- * Gets the field for the current position.
- *
- * The return value is well-defined only after
- * FormattedValue#nextPosition returns TRUE.
- *
- * @return The field saved in the instance.
- * @stable ICU 64
- */
- inline int32_t getField() const {
- return fField;
- }
-
- /**
- * Gets the INCLUSIVE start index for the current position.
- *
- * The return value is well-defined only after FormattedValue#nextPosition returns TRUE.
- *
- * @return The start index saved in the instance.
- * @stable ICU 64
- */
- inline int32_t getStart() const {
- return fStart;
- }
-
- /**
- * Gets the EXCLUSIVE end index stored for the current position.
- *
- * The return value is well-defined only after FormattedValue#nextPosition returns TRUE.
- *
- * @return The end index saved in the instance.
- * @stable ICU 64
- */
- inline int32_t getLimit() const {
- return fLimit;
- }
-
- ////////////////////////////////////////////////////////////////////
- //// The following methods are for FormattedValue implementers; ////
- //// most users can ignore them. ////
- ////////////////////////////////////////////////////////////////////
-
- /**
- * Gets an int64 that FormattedValue implementations may use for storage.
- *
- * The initial value is zero.
- *
- * Users of FormattedValue should not need to call this method.
- *
- * @return The current iteration context from {@link #setInt64IterationContext}.
- * @stable ICU 64
- */
- inline int64_t getInt64IterationContext() const {
- return fContext;
- }
-
- /**
- * Sets an int64 that FormattedValue implementations may use for storage.
- *
- * Intended to be used by FormattedValue implementations.
- *
- * @param context The new iteration context.
- * @stable ICU 64
- */
- void setInt64IterationContext(int64_t context);
-
- /**
- * Determines whether a given field should be included given the
- * constraints.
- *
- * Intended to be used by FormattedValue implementations.
- *
- * @param category The category to test.
- * @param field The field to test.
- * @stable ICU 64
- */
- UBool matchesField(int32_t category, int32_t field) const;
-
- /**
- * Sets new values for the primary public getters.
- *
- * Intended to be used by FormattedValue implementations.
- *
- * It is up to the implementation to ensure that the user-requested
- * constraints are satisfied. This method does not check!
- *
- * @param category The new field category.
- * @param field The new field.
- * @param start The new inclusive start index.
- * @param limit The new exclusive end index.
- * @stable ICU 64
- */
- void setState(
- int32_t category,
- int32_t field,
- int32_t start,
- int32_t limit);
-
- private:
- int64_t fContext = 0LL;
- int32_t fField = 0;
- int32_t fStart = 0;
- int32_t fLimit = 0;
- int32_t fCategory = UFIELD_CATEGORY_UNDEFINED;
- int8_t fConstraint = 0;
-};
-
-/**
- * An abstract formatted value: a string with associated field attributes.
- * Many formatters format to classes implementing FormattedValue.
- *
- * @stable ICU 64
- */
-class U_I18N_API FormattedValue /* not : public UObject because this is an interface/mixin class */ {
- public:
- /** @stable ICU 64 */
- virtual ~FormattedValue();
-
- /**
- * Returns the formatted string as a self-contained UnicodeString.
- *
- * If you need the string within the current scope only, consider #toTempString.
- *
- * @param status Set if an error occurs.
- * @return a UnicodeString containing the formatted string.
- *
- * @stable ICU 64
- */
- virtual UnicodeString toString(UErrorCode& status) const = 0;
-
- /**
- * Returns the formatted string as a read-only alias to memory owned by the FormattedValue.
- *
- * The return value is valid only as long as this FormattedValue is present and unchanged in
- * memory. If you need the string outside the current scope, consider #toString.
- *
- * The buffer returned by calling UnicodeString#getBuffer() on the return value is
- * guaranteed to be NUL-terminated.
- *
- * @param status Set if an error occurs.
- * @return a temporary UnicodeString containing the formatted string.
- *
- * @stable ICU 64
- */
- virtual UnicodeString toTempString(UErrorCode& status) const = 0;
-
- /**
- * Appends the formatted string to an Appendable.
- *
- * @param appendable
- * The Appendable to which to append the string output.
- * @param status Set if an error occurs.
- * @return The same Appendable, for chaining.
- *
- * @stable ICU 64
- * @see Appendable
- */
- virtual Appendable& appendTo(Appendable& appendable, UErrorCode& status) const = 0;
-
- /**
- * Iterates over field positions in the FormattedValue. This lets you determine the position
- * of specific types of substrings, like a month or a decimal separator.
- *
- * To loop over all field positions:
- *
- * ConstrainedFieldPosition cfpos;
- * while (fmtval.nextPosition(cfpos, status)) {
- * // handle the field position; get information from cfpos
- * }
- *
- * @param cfpos
- * The object used for iteration state. This can provide constraints to iterate over
- * only one specific category or field;
- * see ConstrainedFieldPosition#constrainCategory
- * and ConstrainedFieldPosition#constrainField.
- * @param status Set if an error occurs.
- * @return TRUE if a new occurrence of the field was found;
- * FALSE otherwise or if an error was set.
- *
- * @stable ICU 64
- */
- virtual UBool nextPosition(ConstrainedFieldPosition& cfpos, UErrorCode& status) const = 0;
-};
-
-U_NAMESPACE_END
-
-#endif /* #if !UCONFIG_NO_FORMATTING */
-
-#endif /* U_SHOW_CPLUSPLUS_API */
-
-#endif // __FORMATTEDVALUE_H__
+ * This class differs from FieldPosition in the following ways:
+ *
+ * 1. It has information on the field category.
+ * 2. It allows you to set constraints to use when iterating over field positions.
+ * 3. It is used for the newer FormattedValue APIs.
+ *
+ * This class is not intended for public subclassing.
+ *
+ * @stable ICU 64
+ */
+class U_I18N_API ConstrainedFieldPosition : public UMemory {
+ public:
+
+ /**
+ * Initializes a ConstrainedFieldPosition.
+ *
+ * By default, the ConstrainedFieldPosition has no iteration constraints.
+ *
+ * @stable ICU 64
+ */
+ ConstrainedFieldPosition();
+
+ /** @stable ICU 64 */
+ ~ConstrainedFieldPosition();
+
+ /**
+ * Resets this ConstrainedFieldPosition to its initial state, as if it were newly created:
+ *
+ * - Removes any constraints that may have been set on the instance.
+ * - Resets the iteration position.
+ *
+ * @stable ICU 64
+ */
+ void reset();
+
+ /**
+ * Sets a constraint on the field category.
+ *
+ * When this instance of ConstrainedFieldPosition is passed to FormattedValue#nextPosition,
+ * positions are skipped unless they have the given category.
+ *
+ * Any previously set constraints are cleared.
+ *
+ * For example, to loop over only the number-related fields:
+ *
+ * ConstrainedFieldPosition cfpos;
+ * cfpos.constrainCategory(UFIELDCATEGORY_NUMBER_FORMAT);
+ * while (fmtval.nextPosition(cfpos, status)) {
+ * // handle the number-related field position
+ * }
+ *
+ * Changing the constraint while in the middle of iterating over a FormattedValue
+ * does not generally have well-defined behavior.
+ *
+ * @param category The field category to fix when iterating.
+ * @stable ICU 64
+ */
+ void constrainCategory(int32_t category);
+
+ /**
+ * Sets a constraint on the category and field.
+ *
+ * When this instance of ConstrainedFieldPosition is passed to FormattedValue#nextPosition,
+ * positions are skipped unless they have the given category and field.
+ *
+ * Any previously set constraints are cleared.
+ *
+ * For example, to loop over all grouping separators:
+ *
+ * ConstrainedFieldPosition cfpos;
+ * cfpos.constrainField(UFIELDCATEGORY_NUMBER_FORMAT, UNUM_GROUPING_SEPARATOR_FIELD);
+ * while (fmtval.nextPosition(cfpos, status)) {
+ * // handle the grouping separator position
+ * }
+ *
+ * Changing the constraint while in the middle of iterating over a FormattedValue
+ * does not generally have well-defined behavior.
+ *
+ * @param category The field category to fix when iterating.
+ * @param field The field to fix when iterating.
+ * @stable ICU 64
+ */
+ void constrainField(int32_t category, int32_t field);
+
+ /**
+ * Gets the field category for the current position.
+ *
+ * The return value is well-defined only after
+ * FormattedValue#nextPosition returns TRUE.
+ *
+ * @return The field category saved in the instance.
+ * @stable ICU 64
+ */
+ inline int32_t getCategory() const {
+ return fCategory;
+ }
+
+ /**
+ * Gets the field for the current position.
+ *
+ * The return value is well-defined only after
+ * FormattedValue#nextPosition returns TRUE.
+ *
+ * @return The field saved in the instance.
+ * @stable ICU 64
+ */
+ inline int32_t getField() const {
+ return fField;
+ }
+
+ /**
+ * Gets the INCLUSIVE start index for the current position.
+ *
+ * The return value is well-defined only after FormattedValue#nextPosition returns TRUE.
+ *
+ * @return The start index saved in the instance.
+ * @stable ICU 64
+ */
+ inline int32_t getStart() const {
+ return fStart;
+ }
+
+ /**
+ * Gets the EXCLUSIVE end index stored for the current position.
+ *
+ * The return value is well-defined only after FormattedValue#nextPosition returns TRUE.
+ *
+ * @return The end index saved in the instance.
+ * @stable ICU 64
+ */
+ inline int32_t getLimit() const {
+ return fLimit;
+ }
+
+ ////////////////////////////////////////////////////////////////////
+ //// The following methods are for FormattedValue implementers; ////
+ //// most users can ignore them. ////
+ ////////////////////////////////////////////////////////////////////
+
+ /**
+ * Gets an int64 that FormattedValue implementations may use for storage.
+ *
+ * The initial value is zero.
+ *
+ * Users of FormattedValue should not need to call this method.
+ *
+ * @return The current iteration context from {@link #setInt64IterationContext}.
+ * @stable ICU 64
+ */
+ inline int64_t getInt64IterationContext() const {
+ return fContext;
+ }
+
+ /**
+ * Sets an int64 that FormattedValue implementations may use for storage.
+ *
+ * Intended to be used by FormattedValue implementations.
+ *
+ * @param context The new iteration context.
+ * @stable ICU 64
+ */
+ void setInt64IterationContext(int64_t context);
+
+ /**
+ * Determines whether a given field should be included given the
+ * constraints.
+ *
+ * Intended to be used by FormattedValue implementations.
+ *
+ * @param category The category to test.
+ * @param field The field to test.
+ * @stable ICU 64
+ */
+ UBool matchesField(int32_t category, int32_t field) const;
+
+ /**
+ * Sets new values for the primary public getters.
+ *
+ * Intended to be used by FormattedValue implementations.
+ *
+ * It is up to the implementation to ensure that the user-requested
+ * constraints are satisfied. This method does not check!
+ *
+ * @param category The new field category.
+ * @param field The new field.
+ * @param start The new inclusive start index.
+ * @param limit The new exclusive end index.
+ * @stable ICU 64
+ */
+ void setState(
+ int32_t category,
+ int32_t field,
+ int32_t start,
+ int32_t limit);
+
+ private:
+ int64_t fContext = 0LL;
+ int32_t fField = 0;
+ int32_t fStart = 0;
+ int32_t fLimit = 0;
+ int32_t fCategory = UFIELD_CATEGORY_UNDEFINED;
+ int8_t fConstraint = 0;
+};
+
+/**
+ * An abstract formatted value: a string with associated field attributes.
+ * Many formatters format to classes implementing FormattedValue.
+ *
+ * @stable ICU 64
+ */
+class U_I18N_API FormattedValue /* not : public UObject because this is an interface/mixin class */ {
+ public:
+ /** @stable ICU 64 */
+ virtual ~FormattedValue();
+
+ /**
+ * Returns the formatted string as a self-contained UnicodeString.
+ *
+ * If you need the string within the current scope only, consider #toTempString.
+ *
+ * @param status Set if an error occurs.
+ * @return a UnicodeString containing the formatted string.
+ *
+ * @stable ICU 64
+ */
+ virtual UnicodeString toString(UErrorCode& status) const = 0;
+
+ /**
+ * Returns the formatted string as a read-only alias to memory owned by the FormattedValue.
+ *
+ * The return value is valid only as long as this FormattedValue is present and unchanged in
+ * memory. If you need the string outside the current scope, consider #toString.
+ *
+ * The buffer returned by calling UnicodeString#getBuffer() on the return value is
+ * guaranteed to be NUL-terminated.
+ *
+ * @param status Set if an error occurs.
+ * @return a temporary UnicodeString containing the formatted string.
+ *
+ * @stable ICU 64
+ */
+ virtual UnicodeString toTempString(UErrorCode& status) const = 0;
+
+ /**
+ * Appends the formatted string to an Appendable.
+ *
+ * @param appendable
+ * The Appendable to which to append the string output.
+ * @param status Set if an error occurs.
+ * @return The same Appendable, for chaining.
+ *
+ * @stable ICU 64
+ * @see Appendable
+ */
+ virtual Appendable& appendTo(Appendable& appendable, UErrorCode& status) const = 0;
+
+ /**
+ * Iterates over field positions in the FormattedValue. This lets you determine the position
+ * of specific types of substrings, like a month or a decimal separator.
+ *
+ * To loop over all field positions:
+ *
+ * ConstrainedFieldPosition cfpos;
+ * while (fmtval.nextPosition(cfpos, status)) {
+ * // handle the field position; get information from cfpos
+ * }
+ *
+ * @param cfpos
+ * The object used for iteration state. This can provide constraints to iterate over
+ * only one specific category or field;
+ * see ConstrainedFieldPosition#constrainCategory
+ * and ConstrainedFieldPosition#constrainField.
+ * @param status Set if an error occurs.
+ * @return TRUE if a new occurrence of the field was found;
+ * FALSE otherwise or if an error was set.
+ *
+ * @stable ICU 64
+ */
+ virtual UBool nextPosition(ConstrainedFieldPosition& cfpos, UErrorCode& status) const = 0;
+};
+
+U_NAMESPACE_END
+
+#endif /* #if !UCONFIG_NO_FORMATTING */
+
+#endif /* U_SHOW_CPLUSPLUS_API */
+
+#endif // __FORMATTEDVALUE_H__