OpenTTD Source
20241108-master-g80f628063a
|
Class for iterating over different kind of parts of a string. More...
#include <string_base.h>
Public Types | |
enum | IterType { ITER_CHARACTER , ITER_WORD } |
Type of the iterator. More... | |
Public Member Functions | |
virtual void | SetString (const char *s)=0 |
Set a new iteration string. More... | |
virtual size_t | SetCurPosition (size_t pos)=0 |
Change the current string cursor. More... | |
virtual size_t | Next (IterType what=ITER_CHARACTER)=0 |
Advance the cursor by one iteration unit. More... | |
virtual size_t | Prev (IterType what=ITER_CHARACTER)=0 |
Move the cursor back by one iteration unit. More... | |
Static Public Member Functions | |
static std::unique_ptr< StringIterator > | Create () |
Create a new iterator instance. More... | |
Static Public Attributes | |
static const size_t | END = SIZE_MAX |
Sentinel to indicate end-of-iteration. | |
Class for iterating over different kind of parts of a string.
Definition at line 14 of file string_base.h.
Type of the iterator.
Enumerator | |
---|---|
ITER_CHARACTER | Iterate over characters (or more exactly grapheme clusters). |
ITER_WORD | Iterate over words. |
Definition at line 17 of file string_base.h.
|
static |
Create a new iterator instance.
Definition at line 917 of file string.cpp.
|
pure virtual |
Advance the cursor by one iteration unit.
Implemented in IcuStringIterator, UniscribeStringIterator, and OSXStringIterator.
|
pure virtual |
Move the cursor back by one iteration unit.
Implemented in IcuStringIterator, UniscribeStringIterator, and OSXStringIterator.
|
pure virtual |
Change the current string cursor.
pos | New cursor position. |
Implemented in IcuStringIterator, UniscribeStringIterator, and OSXStringIterator.
|
pure virtual |
Set a new iteration string.
Must also be called if the string contents changed. The cursor is reset to the start of the string.
s | New string. |
Implemented in IcuStringIterator, UniscribeStringIterator, and OSXStringIterator.