HDK
|
A utility class to do read-only operations on a subset of an existing string. More...
#include <UT_StringView.h>
Static Public Attributes | |
static constexpr exint | npos = std::numeric_limits<exint>::max() |
Iterators | |
typedef const char * | const_iterator |
The iterator type. UT_StringView only provides read-only iterators. More... | |
SYS_NO_DISCARD_RESULT SYS_FORCE_INLINE const_iterator | begin () const |
Returns a constant iterator pointing to the beginning of the string. More... | |
SYS_NO_DISCARD_RESULT SYS_FORCE_INLINE const_iterator | end () const |
Returns a constant iterator pointing to the end of the string. More... | |
A utility class to do read-only operations on a subset of an existing string.
Definition at line 40 of file UT_StringView.h.
typedef const char* UT_StringView::const_iterator |
The iterator type. UT_StringView only provides read-only iterators.
Definition at line 253 of file UT_StringView.h.
|
inline |
Default constructor. Constructs an empty non-string.
Definition at line 45 of file UT_StringView.h.
|
inline |
Construct a string view from the entirety of a null-terminated string.
Definition at line 52 of file UT_StringView.h.
|
inlineexplicit |
Construct a string view on a string of a given length.
Definition at line 62 of file UT_StringView.h.
|
inlineexplicit |
Construct a string view on a given string range. The end
pointer should point to one past the end of the string (i.e. in the case of null terminated strings, it should point at the null character).
Definition at line 75 of file UT_StringView.h.
|
default |
Copy constructor.
UT_StringView::UT_StringView | ( | const UT_StringLit & | s | ) |
UT_StringView::UT_StringView | ( | const UT_StringRef & | s | ) |
UT_StringView::UT_StringView | ( | const UT_StringHolder & | s | ) |
UT_StringView::UT_StringView | ( | const UT_WorkBuffer & | s | ) |
|
inline |
Returns the character at index i
.
Definition at line 128 of file UT_StringView.h.
|
inline |
Returns a constant reference to the last character in the view. Undefined behaviour if the view is empty.
Definition at line 150 of file UT_StringView.h.
|
inline |
Returns a constant iterator pointing to the beginning of the string.
Definition at line 257 of file UT_StringView.h.
Clears the string. After this operation isstring will return false, and isEmpty will return true.
Definition at line 269 of file UT_StringView.h.
SYS_NO_DISCARD_RESULT int UT_StringView::compare | ( | const char * | str, |
exint | str_len, | ||
bool | case_sensitive = true |
||
) | const |
The compare function compares this string with another, and returns and integer less than, equal to, or greater than zero if this string is found to be less than, equal to, or greater than the given string, respectively. If a length is given, then the strings are compared as if they were both of that length, or smaller.
SYS_NO_DISCARD_RESULT int UT_StringView::compare | ( | const UT_StringView & | sv, |
bool | case_sensitive = true |
||
) | const |
The compare function compares this string with another, and returns and integer less than, equal to, or greater than zero if this string is found to be less than, equal to, or greater than the given string, respectively. If a length is given, then the strings are compared as if they were both of that length, or smaller.
|
inlinenoexcept |
Returns a pointer to the first character of a view.
Definition at line 137 of file UT_StringView.h.
|
inline |
Returns a constant iterator pointing to the end of the string.
Definition at line 261 of file UT_StringView.h.
SYS_NO_DISCARD_RESULT bool UT_StringView::endsWith | ( | const char * | prefix, |
bool | case_sensitive = true , |
||
exint | len = -1 |
||
) | const |
The compare function compares this string with another, and returns and integer less than, equal to, or greater than zero if this string is found to be less than, equal to, or greater than the given string, respectively. If a length is given, then the strings are compared as if they were both of that length, or smaller.
|
inline |
Returns true if the two strings compare as being equal. If case_sensitive
is set to false
then the strings are compared in a case-insensitive fashion.
Definition at line 345 of file UT_StringView.h.
|
inline |
The compare function compares this string with another, and returns and integer less than, equal to, or greater than zero if this string is found to be less than, equal to, or greater than the given string, respectively. If a length is given, then the strings are compared as if they were both of that length, or smaller.
Definition at line 349 of file UT_StringView.h.
const_iterator UT_StringView::find | ( | char | c, |
const_iterator | start | ||
) | const |
Find the first instance of the given character in this string.
|
inline |
The compare function compares this string with another, and returns and integer less than, equal to, or greater than zero if this string is found to be less than, equal to, or greater than the given string, respectively. If a length is given, then the strings are compared as if they were both of that length, or smaller.
Definition at line 381 of file UT_StringView.h.
const_iterator UT_StringView::find | ( | const char * | str, |
const_iterator | start | ||
) | const |
Find the first instance of the given substring in this string.
|
inline |
The compare function compares this string with another, and returns and integer less than, equal to, or greater than zero if this string is found to be less than, equal to, or greater than the given string, respectively. If a length is given, then the strings are compared as if they were both of that length, or smaller.
Definition at line 387 of file UT_StringView.h.
|
noexcept |
Find the first character not equal to any of the characters in the given character sequence.
|
inlinenoexcept |
Returns the length of the string in bytes.
Definition at line 207 of file UT_StringView.h.
|
inline |
Returns the length of the string in bytes.
Definition at line 220 of file UT_StringView.h.
|
inline |
Returns the length of the string in bytes.
Definition at line 224 of file UT_StringView.h.
|
noexcept |
Find first character equal to any of the characters in the given character sequence.
|
inlinenoexcept |
Returns the length of the string in bytes.
Definition at line 162 of file UT_StringView.h.
|
inline |
Returns the length of the string in bytes.
Definition at line 174 of file UT_StringView.h.
|
inline |
Returns the length of the string in bytes.
Definition at line 178 of file UT_StringView.h.
|
noexcept |
Find the last character not equal to any of the characters in the given character sequence.
|
inlinenoexcept |
Returns the length of the string in bytes.
Definition at line 233 of file UT_StringView.h.
|
inline |
Returns the length of the string in bytes.
Definition at line 239 of file UT_StringView.h.
|
inline |
Returns the length of the string in bytes.
Definition at line 243 of file UT_StringView.h.
|
noexcept |
Find the last character equal to any of the characters in the viven character sequence.
|
inlinenoexcept |
Returns the length of the string in bytes.
Definition at line 187 of file UT_StringView.h.
|
inline |
Returns the length of the string in bytes.
Definition at line 193 of file UT_StringView.h.
|
inline |
Returns the length of the string in bytes.
Definition at line 198 of file UT_StringView.h.
SYS_NO_DISCARD_RESULT UT_StringView UT_StringView::firstToken | ( | const char * | sep_chars = " \t\n\r" | ) | const |
Return the first token.
|
inline |
Returns a constant reference to the first character in the view. Undefined behaviour if view is empty.
Definition at line 141 of file UT_StringView.h.
|
inline |
Returns the memory, in bytes, used by this object.
Definition at line 120 of file UT_StringView.h.
|
inline |
Definition at line 418 of file UT_StringView.h.
|
inline |
Returns true
if the string is empty.
Definition at line 108 of file UT_StringView.h.
SYS_NO_DISCARD_RESULT bool UT_StringView::isFloat | ( | bool | skip_spaces = false , |
bool | loose = false , |
||
bool | allow_underscore = false |
||
) | const |
Determine if string can be seen as a single floating point number.
SYS_NO_DISCARD_RESULT bool UT_StringView::isInteger | ( | bool | skip_spaces = false | ) | const |
Determine if string can be seen as a single integer number.
|
inline |
Returns true
if the view points to a valid string, even an empty one.
Definition at line 112 of file UT_StringView.h.
|
inline |
Returns the length of the string in bytes.
Definition at line 104 of file UT_StringView.h.
|
inline |
Test whether the string is not an empty string (or nullptr)
Definition at line 116 of file UT_StringView.h.
|
inline |
Returns true if the two strings compare as being not equal.
Definition at line 363 of file UT_StringView.h.
|
inline |
The compare function compares this string with another, and returns and integer less than, equal to, or greater than zero if this string is found to be less than, equal to, or greater than the given string, respectively. If a length is given, then the strings are compared as if they were both of that length, or smaller.
Definition at line 366 of file UT_StringView.h.
|
inline |
Returns true if this string is lexicographically less than the given string.
Definition at line 372 of file UT_StringView.h.
|
inline |
The compare function compares this string with another, and returns and integer less than, equal to, or greater than zero if this string is found to be less than, equal to, or greater than the given string, respectively. If a length is given, then the strings are compared as if they were both of that length, or smaller.
Definition at line 375 of file UT_StringView.h.
|
default |
Assignment operator.
|
inline |
Returns true if the two strings compare as being equal.
Definition at line 355 of file UT_StringView.h.
|
inline |
The compare function compares this string with another, and returns and integer less than, equal to, or greater than zero if this string is found to be less than, equal to, or greater than the given string, respectively. If a length is given, then the strings are compared as if they were both of that length, or smaller.
Definition at line 358 of file UT_StringView.h.
|
inline |
Returns the character at index i
. No bounds checking is performed.
Definition at line 125 of file UT_StringView.h.
Move the start of the view forward by n characters. If N is grreater then length() then it moves to the end.
Move the end of the view backwards by n characters. If n is greater then the length() then it moves to the start.
SYS_NO_DISCARD_RESULT const_iterator UT_StringView::rfind | ( | char | c, |
const_iterator | pos | ||
) | const |
Find last instance of the given character in this string, searching backwards from 'pos'.
|
inline |
The compare function compares this string with another, and returns and integer less than, equal to, or greater than zero if this string is found to be less than, equal to, or greater than the given string, respectively. If a length is given, then the strings are compared as if they were both of that length, or smaller.
Definition at line 395 of file UT_StringView.h.
SYS_NO_DISCARD_RESULT UT_StringViewArray UT_StringView::split | ( | const char * | sep_str = " " , |
int | max_split = INT_MAX |
||
) | const |
Splits the string into a list of words, using sep_str as the separator string. Unlike tokenize, consecutive delimiters are not grouped together and are instead taken to delimit empty strings. If max_split
is set, the string is split into at most max_sep
pieces.
SYS_NO_DISCARD_RESULT bool UT_StringView::startsWith | ( | const char * | prefix, |
bool | case_sensitive = true , |
||
exint | len = -1 |
||
) | const |
Returns true if our string starts with the specified prefix.
SYS_NO_DISCARD_RESULT UT_StringView UT_StringView::substr | ( | exint | index, |
exint | length = SYS_EXINT_MAX |
||
) | const |
Returns a sub-string of the current string. If positive, the index
parameter is relative to the start. If negative, it's relative to the end (e.g. substr(-1,1) will return the last character of the string). The empty string will be returned for out-of-range values.
SYS_NO_DISCARD_RESULT UT_StringViewArray UT_StringView::tokenize | ( | const char * | sep_chars = " \t\n\r" , |
bool | group_separators = true |
||
) | const |
Splits the string into individual tokens, separated by one or more of the sep
characters given. If group_separators
is false, the delimiters are not grouped together, e.g., ",," => ('', '', ''), which is equivalent of Python's split().
|
inline |
Trim characters from the left- and right-hand side of the string. By default this will trim the ASCII space characters.
Definition at line 274 of file UT_StringView.h.
|
inline |
Trim characters from the left-hand side of the string. By default this will trim the ASCII space characters.
Definition at line 280 of file UT_StringView.h.
|
inline |
Trim characters from the right-hand side of the string. By default this will trim the ASCII space characters.
Definition at line 286 of file UT_StringView.h.
The exact meaning depends on context, but generally used either as end of view indicator by the functions that expect a view index or as the error indicator by the functions that return a view index.
Definition at line 97 of file UT_StringView.h.