HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
UT_StringView Class Reference

A utility class to do read-only operations on a subset of an existing string. More...

#include <UT_StringView.h>

Public Member Functions

 UT_StringView ()
 Default constructor. Constructs an empty non-string. More...
 
 UT_StringView (const char *str)
 Construct a string view from the entirety of a null-terminated string. More...
 
 UT_StringView (const char *str, exint len)
 Construct a string view on a string of a given length. More...
 
 UT_StringView (const char *start, const char *end)
 
 UT_StringView (const UT_StringView &o)
 Copy constructor. More...
 
Query functions
exint length () const
 Returns the length of the string in bytes. More...
 
bool isEmpty () const
 Returns true if the string is empty. More...
 
bool isstring () const
 Returns true if the view points to a valid string, even an empty one. More...
 
SYS_SAFE_BOOL operator bool () const
 Test whether the string is not an empty string (or nullptr) More...
 
int64 getMemoryUsage (bool inclusive) const
 Returns the memory, in bytes, used by this object. More...
 
char operator[] (exint i) const
 Returns the character at index i. No bounds checking is performed. More...
 
Manipulators
void clear ()
 
UT_StringView trim (const char *c=" \t\n\r") const
 
UT_StringView trimLeft (const char *c=" \t\n\r") const
 
UT_StringView trimRight (const char *c=" \t\n\r") const
 
UT_StringView firstToken (const char *sep_chars=" \t\n\r") const
 Return the first token. More...
 
UT_StringViewArray tokenize (const char *sep_chars=" \t\n\r") const
 
UT_StringViewArray split (const char *sep_str=" ", int max_split=INT_MAX) const
 
UT_StringView substr (exint index, exint length=SYS_EXINT_MAX) const
 
Operators
int compare (const char *str, exint str_len, bool case_sensitive=true) const
 
int compare (const UT_StringView &sv, bool case_sensitive=true) const
 
bool equal (const char *str, bool case_sensitive=true) const
 
bool equal (const UT_StringView &other, bool case_sensitive=true) const
 
bool operator== (const char *str) const
 Returns true if the two strings compare as being equal. More...
 
bool operator== (const UT_StringView &other) const
 
bool operator!= (const char *str) const
 Returns true if the two strings compare as being not equal. More...
 
bool operator!= (const UT_StringView &other) const
 
bool operator< (const char *str) const
 
bool operator< (const UT_StringView &other) const
 
const_iterator find (char c, const_iterator start) const
 Find the first instance of the given character in this string. More...
 
const_iterator find (char c) const
 
const_iterator find (const char *str, const_iterator start) const
 Find the first instance of the given substring in this string. More...
 
const_iterator find (const char *str) const
 

Iterators

typedef const char * const_iterator
 The iterator type. UT_StringView only provides read-only iterators. More...
 
const_iterator begin () const
 Returns a constant iterator pointing to the beginning of the string. More...
 
const_iterator end () const
 Returns a constant iterator pointing to the end of the string. More...
 

Detailed Description

A utility class to do read-only operations on a subset of an existing string.

Note
This object does not take ownership over the data being looked at, so care must be taken that the owning object doesn't not go out of scope before the view object.

Definition at line 30 of file UT_StringView.h.

Member Typedef Documentation

The iterator type. UT_StringView only provides read-only iterators.

Definition at line 97 of file UT_StringView.h.

Constructor & Destructor Documentation

UT_StringView::UT_StringView ( )
inline

Default constructor. Constructs an empty non-string.

Definition at line 34 of file UT_StringView.h.

UT_StringView::UT_StringView ( const char *  str)
inline

Construct a string view from the entirety of a null-terminated string.

Definition at line 39 of file UT_StringView.h.

UT_StringView::UT_StringView ( const char *  str,
exint  len 
)
inlineexplicit

Construct a string view on a string of a given length.

Definition at line 47 of file UT_StringView.h.

UT_StringView::UT_StringView ( const char *  start,
const char *  end 
)
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 58 of file UT_StringView.h.

UT_StringView::UT_StringView ( const UT_StringView o)
inline

Copy constructor.

Definition at line 65 of file UT_StringView.h.

Member Function Documentation

const_iterator UT_StringView::begin ( void  ) const
inline

Returns a constant iterator pointing to the beginning of the string.

Definition at line 100 of file UT_StringView.h.

void UT_StringView::clear ( void  )
inline

Clears the string. After this operation isstring will return false, and isEmpty will return true.

Definition at line 111 of file UT_StringView.h.

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.

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.

const_iterator UT_StringView::end ( void  ) const
inline

Returns a constant iterator pointing to the end of the string.

Definition at line 103 of file UT_StringView.h.

bool UT_StringView::equal ( const char *  str,
bool  case_sensitive = true 
) const
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 168 of file UT_StringView.h.

bool UT_StringView::equal ( const UT_StringView other,
bool  case_sensitive = true 
) const
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 171 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.

const_iterator UT_StringView::find ( char  c) const
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 196 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.

const_iterator UT_StringView::find ( const char *  str) const
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 201 of file UT_StringView.h.

UT_StringView UT_StringView::firstToken ( const char *  sep_chars = " \t\n\r") const

Return the first token.

int64 UT_StringView::getMemoryUsage ( bool  inclusive) const
inline

Returns the memory, in bytes, used by this object.

Definition at line 85 of file UT_StringView.h.

bool UT_StringView::isEmpty ( ) const
inline

Returns true if the string is empty.

Definition at line 76 of file UT_StringView.h.

bool UT_StringView::isstring ( ) const
inline

Returns true if the view points to a valid string, even an empty one.

Definition at line 79 of file UT_StringView.h.

exint UT_StringView::length ( void  ) const
inline

Returns the length of the string in bytes.

Definition at line 73 of file UT_StringView.h.

SYS_SAFE_BOOL UT_StringView::operator bool ( ) const
inline

Test whether the string is not an empty string (or nullptr)

Definition at line 82 of file UT_StringView.h.

bool UT_StringView::operator!= ( const char *  str) const
inline

Returns true if the two strings compare as being not equal.

Definition at line 182 of file UT_StringView.h.

bool UT_StringView::operator!= ( const UT_StringView other) const
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 184 of file UT_StringView.h.

bool UT_StringView::operator< ( const char *  str) const
inline

Returns true if this string is lexicographically less than the given string.

Definition at line 189 of file UT_StringView.h.

bool UT_StringView::operator< ( const UT_StringView other) const
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 191 of file UT_StringView.h.

bool UT_StringView::operator== ( const char *  str) const
inline

Returns true if the two strings compare as being equal.

Definition at line 176 of file UT_StringView.h.

bool UT_StringView::operator== ( const UT_StringView other) const
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 178 of file UT_StringView.h.

char UT_StringView::operator[] ( exint  i) const
inline

Returns the character at index i. No bounds checking is performed.

Definition at line 89 of file UT_StringView.h.

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.

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.

UT_StringViewArray UT_StringView::tokenize ( const char *  sep_chars = " \t\n\r") const

Splits the string into individual tokens, separated by one or more of the sep characters given.

UT_StringView UT_StringView::trim ( const char *  c = " \t\n\r") const
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 115 of file UT_StringView.h.

UT_StringView UT_StringView::trimLeft ( const char *  c = " \t\n\r") const
inline

Trim characters from the left-hand side of the string. By default this will trim the ASCII space characters.

Definition at line 120 of file UT_StringView.h.

UT_StringView UT_StringView::trimRight ( const char *  c = " \t\n\r") const
inline

Trim characters from the right-hand side of the string. By default this will trim the ASCII space characters.

Definition at line 125 of file UT_StringView.h.


The documentation for this class was generated from the following file: