38 UTF8() noexcept = default;
57 UTF8(
UTF8&& AMove) noexcept = default;
58 UTF8& operator=(
UTF8&& AMove) noexcept = default;
68 UTF8 operator+(const
UTF8& ARHS) const;
90 template <typename ALambda>
void IterateCodepoints(const ALambda AIterator, const
bool AReverse) const noexcept(noexcept(AIterator(0U,0)));
99 const
char& operator[](const
int APosition) const noexcept;
107 void Shrink(const
int AMaxChars) noexcept final override;
110 int Length(
void) const noexcept final override;
A variable length UTF-8 string.
void Shrink(const int AMaxChars) noexceptfinaloverride
Move the null terminator of the string so that the maxumum number of remaining characters is AMaxChar...
static bool Validate(const CStyle &AString) noexcept
Validates if a given string is UTF8.
void IterateCodepoints(const ALambda AIterator, const bool AReverse) const noexcept(noexcept(AIterator(0U, 0)))
Iterate over the code points.
Used for string of allocated variable length.
void CalculateLength(void) noexcept
Sets up the length cache variable. Assumes the string is validated.
A basic char contained string.
int Length(void) const noexceptfinaloverride
Get the number of characters in the contained string. The definition of character may change in deriv...
int ByteIndexOfChar(const int ACharIndex) const noexcept
Gets the byte index of a given character index.
UTF8 SubString(const int AIndex, const int ALength) const
Get a substring of the contained string. This version will not segment inside of multibyte characters...