84 array(stackArray), capacity(STACK_CAPACITY), length(0), delta(0), numChanges(0),
92 array(stackArray), capacity(STACK_CAPACITY), length(other.length),
93 delta(other.delta), numChanges(other.numChanges),
94 errorCode_(other.errorCode_) {
104 array(stackArray), capacity(STACK_CAPACITY), length(src.length),
105 delta(src.delta), numChanges(src.numChanges),
106 errorCode_(src.errorCode_) {
138 void reset() U_NOEXCEPT;
145 void addUnchanged(int32_t unchangedLength);
151 void addReplace(int32_t oldLength, int32_t newLength);
169 int32_t lengthDelta()
const {
return delta; }
176 #ifndef U_HIDE_DRAFT_API
182 #endif // U_HIDE_DRAFT_API
208 array(nullptr), index(0), length(0),
209 remaining(0), onlyChanges_(
FALSE), coarse(
FALSE),
210 dir(0), changed(
FALSE), oldLength_(0), newLength_(0),
211 srcIndex(0), replIndex(0), destIndex(0) {}
253 return findIndex(i,
TRUE, errorCode) == 0;
256 #ifndef U_HIDE_DRAFT_API
277 return findIndex(i,
FALSE, errorCode) == 0;
302 int32_t destinationIndexFromSourceIndex(int32_t i,
UErrorCode &errorCode);
326 int32_t sourceIndexFromDestinationIndex(int32_t i,
UErrorCode &errorCode);
327 #endif // U_HIDE_DRAFT_API
395 #ifndef U_HIDE_INTERNAL_API
402 #endif // U_HIDE_INTERNAL_API
409 int32_t readLength(int32_t head);
410 void updateNextIndexes();
411 void updatePreviousIndexes();
418 const uint16_t *array;
419 int32_t index, length;
423 UBool onlyChanges_, coarse;
427 int32_t oldLength_, newLength_;
428 int32_t srcIndex, replIndex, destIndex;
478 #ifndef U_HIDE_DRAFT_API
507 #endif // U_HIDE_DRAFT_API
510 void releaseArray() U_NOEXCEPT;
514 void setLastUnit(int32_t last) { array[length - 1] = (uint16_t)last; }
515 int32_t lastUnit()
const {
return length > 0 ? array[length - 1] : 0xffff; }
517 void append(int32_t r);
520 static const int32_t STACK_CAPACITY = 100;
527 uint16_t stackArray[STACK_CAPACITY];
532 #endif // __EDITS_H__
Iterator getCoarseChangesIterator() const
Returns an Iterator for coarse-grained change edits (adjacent change edits are treated as one)...
int32_t replacementIndex() const
The start index of the current span in the replacement string; the span has length newLength...
UBool findSourceIndex(int32_t i, UErrorCode &errorCode)
Moves the iterator to the edit that contains the source index.
int32_t newLength() const
The length of the current span in the destination string, which starts at destinationIndex, or in the replacement string, which starts at replacementIndex.
Access to the list of edits.
int32_t sourceIndex() const
The start index of the current span in the source string; the span has length oldLength.
int32_t oldLength() const
The length of the current span in the source string, which starts at sourceIndex. ...
Iterator getFineChangesIterator() const
Returns an Iterator for fine-grained change edits (full granularity of change edits is retained)...
int32_t numberOfChanges() const
Records lengths of string edits but not replacement text.
#define U_NAMESPACE_BEGIN
This is used to begin a declaration of a public ICU C++ API.
Iterator getFineIterator() const
Returns an Iterator for fine-grained change and no-change edits (full granularity of change edits is ...
Edits(Edits &&src)
Move constructor, might leave src empty.
#define TRUE
The TRUE value of a UBool.
C++ API: Common ICU base class UObject.
#define U_NAMESPACE_END
This is used to end a declaration of a public ICU C++ API.
Edits(const Edits &other)
Copy constructor.
Iterator()
Default constructor, empty iterator.
UErrorCode
Error code to replace exception handling, so that the code is compatible with all C++ compilers...
UBool hasChange() const
Returns whether the edit currently represented by the iterator is a change edit.
UBool findDestinationIndex(int32_t i, UErrorCode &errorCode)
Moves the iterator to the edit that contains the destination index.
int32_t destinationIndex() const
The start index of the current span in the destination string; the span has length newLength...
Basic definitions for ICU, for both C and C++ APIs.
Edits()
Constructs an empty object.
#define FALSE
The FALSE value of a UBool.
#define U_COMMON_API
Set to export library symbols from inside the common library, and to import them from outside...
Iterator getCoarseIterator() const
Returns an Iterator for coarse-grained change and no-change edits (adjacent change edits are treated ...
UnicodeString is a string class that stores Unicode characters directly and provides similar function...
UBool next(UErrorCode &errorCode)
Advances the iterator to the next edit.
UMemory is the common ICU base class.
int8_t UBool
The ICU boolean type.