StringTemplate< INTERFACETYPE, REFTYPE, CHARTYPE > Class Template Reference

#include <string.h>

Detailed Description

template<typename INTERFACETYPE, typename REFTYPE, typename CHARTYPE>
class maxon::StringTemplate< INTERFACETYPE, REFTYPE, CHARTYPE >

Base template for String and CString.

Template Parameters
INTERFACETYPEEither String or CString.
REFTYPEReference of the interface (String or CString).
CHARTYPEData type to store characters, either Utf32Char (String) or Char (CString).

Classes

class  CharPtr
 

Public Types

using Super = StringTemplate
 
using CharType = CHARTYPE
 

Public Member Functions

MAXON_METHOD Int GetLength () const
 
MAXON_METHOD Result< void > Init (Int count=0, CHARTYPE fillChar=0)
 
MAXON_METHOD Result< void > Shrink ()
 
MAXON_METHOD Result< void > Append (const INTERFACETYPE *str)
 
MAXON_FUNCTION Result< void > Append (const REFTYPE &str)
 
MAXON_METHOD Result< void > Append (const CHARTYPE *str, Int len)
 
MAXON_FUNCTION Result< void > Append (const Block< const CHARTYPE > &block)
 
MAXON_FUNCTION Result< void > AppendChar (CHARTYPE v)
 
MAXON_METHOD Int FindIndex (const INTERFACETYPE *str, StringPosition start=0) const
 
MAXON_METHOD Int FindLastIndex (const INTERFACETYPE *str, StringPosition start=StringEnd()) const
 
MAXON_METHOD Int FindIndex (CHARTYPE ch, StringPosition start=0) const
 
MAXON_METHOD Int FindLastIndex (CHARTYPE ch, StringPosition start=StringEnd()) const
 
MAXON_METHOD Int FindUpperIndex (const INTERFACETYPE *str, StringPosition start=0) const
 
MAXON_METHOD Int FindLastUpperIndex (const INTERFACETYPE *str, StringPosition start=StringEnd()) const
 
MAXON_METHOD Result< void > Erase (StringPosition position, StringCount count)
 
MAXON_METHOD Result< void > Insert (StringPosition position, const INTERFACETYPE *str, StringPosition strStart=0, StringCount strCount=StringEnd())
 
MAXON_METHOD Result< void > Insert (StringPosition position, CHARTYPE ch)
 
MAXON_METHOD INTERFACETYPE * GetPart (StringPosition start, StringCount count) const
 
MAXON_METHOD INTERFACETYPE * ToUpper () const
 
MAXON_METHOD INTERFACETYPE * ToLower () const
 
MAXON_METHOD COMPARERESULT ComparePart (const INTERFACETYPE *str, STRINGCOMPARISON mode, StringPosition position, StringCount count) const
 
MAXON_FUNCTION COMPARERESULT Compare (const INTERFACETYPE *str, STRINGCOMPARISON mode=STRINGCOMPARISON::UNICODE_NUMBERS) const
 
MAXON_FUNCTION Bool IsEqual (const INTERFACETYPE *str) const
 
MAXON_METHOD HashInt GetHashCode () const
 
MAXON_METHOD UniqueHash GetUniqueHashCode () const
 
MAXON_METHOD void SetChar (Int pos, CHARTYPE ch)
 
MAXON_METHOD CHARTYPE GetChar (Int pos) const
 
MAXON_FUNCTION Result< Float64ToFloat64 (STRINGCONVERSION flags=STRINGCONVERSION::NONE) const
 
MAXON_FUNCTION Result< Float32ToFloat32 (STRINGCONVERSION flags=STRINGCONVERSION::NONE) const
 
MAXON_FUNCTION Result< FloatToFloat (STRINGCONVERSION flags=STRINGCONVERSION::NONE) const
 
MAXON_FUNCTION Result< Int64ToInt64 (STRINGCONVERSION flags=STRINGCONVERSION::NONE) const
 
MAXON_FUNCTION Result< Int32ToInt32 (STRINGCONVERSION flags=STRINGCONVERSION::NONE) const
 
MAXON_FUNCTION Result< IntToInt (STRINGCONVERSION flags=STRINGCONVERSION::NONE) const
 
MAXON_FUNCTION Result< UInt64ToUInt64 (STRINGCONVERSION flags=STRINGCONVERSION::NONE) const
 
MAXON_FUNCTION Result< UInt32ToUInt32 (STRINGCONVERSION flags=STRINGCONVERSION::NONE) const
 
MAXON_FUNCTION Result< UIntToUInt (STRINGCONVERSION flags=STRINGCONVERSION::NONE) const
 
MAXON_FUNCTION INTERFACETYPE * AppendInt (Int32 v)
 
MAXON_FUNCTION INTERFACETYPE * AppendUInt (UInt32 v)
 
MAXON_FUNCTION INTERFACETYPE * AppendInt (Int64 v)
 
MAXON_FUNCTION INTERFACETYPE * AppendUInt (UInt64 v)
 
MAXON_METHOD Result< void > GetUtf32 (Utf32CharBuffer &stringData) const
 
MAXON_METHOD Result< void > TrimLeft ()
 
MAXON_METHOD Result< void > TrimRight ()
 
MAXON_METHOD Result< void > Split (const REFTYPE &splitSymbol, Bool trim, const ValueReceiver< const REFTYPE & > &parts) const
 
MAXON_METHOD Result< IntReplace (CHARTYPE find, CHARTYPE replace)
 
MAXON_METHOD Result< IntReplace (const REFTYPE &find, const REFTYPE &replace)
 
MAXON_METHOD Result< IntReplace (CHARTYPE find, const REFTYPE &replace)
 
MAXON_FUNCTION Bool Find (const REFTYPE &str, Int *pos, StringPosition start=0) const
 
MAXON_FUNCTION Bool FindLast (const REFTYPE &str, Int *pos, StringPosition start=StringEnd()) const
 
MAXON_FUNCTION Bool Find (CHARTYPE ch, Int *pos, StringPosition start=0) const
 
MAXON_FUNCTION Bool FindLast (CHARTYPE ch, Int *pos, StringPosition start=StringEnd()) const
 
MAXON_FUNCTION Bool FindUpper (const REFTYPE &str, Int *pos, StringPosition start=0) const
 
MAXON_FUNCTION Bool FindLastUpper (const REFTYPE &str, Int *pos, StringPosition start=StringEnd()) const
 
MAXON_FUNCTION INTERFACETYPE * GetLeftPart (StringPosition start) const
 
MAXON_FUNCTION INTERFACETYPE * GetRightPart (StringPosition start) const
 
MAXON_FUNCTION Bool StartsWith (CHARTYPE ch) const
 
MAXON_FUNCTION Bool StartsWith (const REFTYPE &str) const
 
MAXON_FUNCTION Bool EndsWith (CHARTYPE ch) const
 
MAXON_FUNCTION Bool EndsWith (const REFTYPE &str) const
 
MAXON_FUNCTION Result< void > Trim ()
 

Static Public Member Functions

static MAXON_FUNCTION REFTYPE FloatToString (Float32 value, Int charsBeforeComma=STRING_DYNAMIC_DIGITS, Int digitsAfterComma=-3, Bool exponent=false, CHARTYPE fillChar=' ')
 
static MAXON_FUNCTION REFTYPE FloatToString (Float64 value, Int charsBeforeComma=STRING_DYNAMIC_DIGITS, Int digitsAfterComma=-3, Bool exponent=false, CHARTYPE fillChar=' ')
 
static MAXON_FUNCTION REFTYPE IntToString (Int32 v)
 
static MAXON_FUNCTION REFTYPE UIntToString (UInt32 v)
 
static MAXON_FUNCTION REFTYPE IntToString (Int64 v)
 
static MAXON_FUNCTION REFTYPE UIntToString (UInt64 v)
 
static MAXON_FUNCTION REFTYPE MemorySizeToString (Int64 v, Bool mebibytes=true)
 
static MAXON_FUNCTION REFTYPE HexToString (UInt32 v, Bool prefix0x=true)
 
static MAXON_FUNCTION REFTYPE HexToString (UInt64 v, Bool prefix0x=true)
 
static MAXON_FUNCTION REFTYPE PointerToString (const void *v)
 

Member Typedef Documentation

◆ Super

◆ CharType

using CharType = CHARTYPE

Member Function Documentation

◆ GetLength()

MAXON_METHOD Int GetLength ( ) const

Returns the length (number of elements) of the string, not the size of the block.

◆ Init()

MAXON_METHOD Result<void> Init ( Int  count = 0,
CHARTYPE  fillChar = 0 
)

Initializes the string with a specific length and a default character.

Parameters
[in]countNumber of characters of the new string.
[in]fillCharCharacter to fill the string with.
Returns
OK on success.

◆ Shrink()

MAXON_METHOD Result<void> Shrink ( )

Optimizes the memory usage. This can only be done if the string previously contained 16- or 32-bit Unicode characters that now have been removed or if the string was longer before.

Returns
OK on success. Also returns OK if the string already is in its smallest state.

◆ Append() [1/4]

MAXON_METHOD Result<void> Append ( const INTERFACETYPE *  str)

Concatenates 2 strings, use this operation instead of a = a + b as it is much faster.

Returns
OK on success.

◆ Append() [2/4]

MAXON_FUNCTION Result<void> Append ( const REFTYPE &  str)

Concatenates 2 strings, use this operation instead of a = a + b as it is much faster.

Returns
OK on success.

◆ Append() [3/4]

MAXON_METHOD Result<void> Append ( const CHARTYPE *  str,
Int  len 
)

Concatenates 2 strings of which the second is represented by len characters at address str in memory.

Parameters
[in]strCharacter pointer.
[in]lenNumber of characters.
Returns
OK on success.

◆ Append() [4/4]

MAXON_FUNCTION Result<void> Append ( const Block< const CHARTYPE > &  block)

Concatenates 2 strings of which the second is represented by a block of characters.

Parameters
[in]blockCharacter block.
Returns
OK on success.

◆ AppendChar()

MAXON_FUNCTION Result<void> AppendChar ( CHARTYPE  v)

Appends a character to the current string.

Parameters
[in]vThe character that will be added.
Returns
OK on success.

◆ FindIndex() [1/2]

MAXON_METHOD Int FindIndex ( const INTERFACETYPE *  str,
StringPosition  start = 0 
) const

Searches for the first occurrence of 'str' within a string.

Parameters
[in]strThe search string.
[in]startStarting position within the current string to search from. If it is out of bounds the function will return InvalidArrayIndex.
Returns
The index at which 'str' has been found or InvalidArrayIndex. @MAXON_ANNOTATION{default=InvalidArrayIndex}

◆ FindLastIndex() [1/2]

MAXON_METHOD Int FindLastIndex ( const INTERFACETYPE *  str,
StringPosition  start = StringEnd() 
) const

Searches for the last occurrence of 'str' within a string.

Parameters
[in]strThe search string.
[in]startStarting position within the current string to search from (backwards). The character at the given position will not be included in the search. If it is out of bounds the function will return InvalidArrayIndex.
Returns
The index at which 'str' has been found or InvalidArrayIndex. @MAXON_ANNOTATION{default=InvalidArrayIndex}

◆ FindIndex() [2/2]

MAXON_METHOD Int FindIndex ( CHARTYPE  ch,
StringPosition  start = 0 
) const

Searches for the first occurrence of character 'ch' within a string.

Parameters
[in]chThe search character.
[in]startStarting position within the current string to search from. If it is out of bounds the function will return InvalidArrayIndex.
Returns
The index at which 'ch' has been found or InvalidArrayIndex. @MAXON_ANNOTATION{default=InvalidArrayIndex}

◆ FindLastIndex() [2/2]

MAXON_METHOD Int FindLastIndex ( CHARTYPE  ch,
StringPosition  start = StringEnd() 
) const

Searches for the last occurrence of character 'ch' within a string.

Parameters
[in]chThe search character.
[in]startStarting position within the current string to search from (backwards). The character at the given position will not be included in the search. If it is out of bounds the function will return InvalidArrayIndex.
Returns
The index at which 'ch' has been found or InvalidArrayIndex. @MAXON_ANNOTATION{default=InvalidArrayIndex}

◆ FindUpperIndex()

MAXON_METHOD Int FindUpperIndex ( const INTERFACETYPE *  str,
StringPosition  start = 0 
) const

Uppercase search for the first occurrence of 'str' within a string (which doesn't need to contain uppercase characters).

Parameters
[in]strThe search string, must be completely uppercase, otherwise no matches will be found.
[in]startStarting position within the current string to search from. If it is out of bounds the function will return InvalidArrayIndex.
Returns
The index at which 'str' has been found or InvalidArrayIndex. @MAXON_ANNOTATION{default=InvalidArrayIndex}

◆ FindLastUpperIndex()

MAXON_METHOD Int FindLastUpperIndex ( const INTERFACETYPE *  str,
StringPosition  start = StringEnd() 
) const

Uppercase search for the last occurrence of 'str' within a string (which doesn't need to contain uppercase characters).

Parameters
[in]strThe search string, must be completely uppercase, otherwise no matches will be found.
[in]startStarting position within the current string to search from (backwards). The character at the given position will not be included in the search. If it is out of bounds the function will return InvalidArrayIndex.
Returns
The index at which 'str' has been found or InvalidArrayIndex. @MAXON_ANNOTATION{default=InvalidArrayIndex}

◆ Erase()

MAXON_METHOD Result<void> Erase ( StringPosition  position,
StringCount  count 
)

Erases a range of characters within a string.

Parameters
[in]positionThe starting position to delete 'count' characters. If the position is out of bounds an error will be returned.
[in]countNumber of characters to delete. If you want to delete all characters until the end pass StringEnd(). If the number is larger than what is available an error will be returned.
Returns
OK on success.

◆ Insert() [1/2]

MAXON_METHOD Result<void> Insert ( StringPosition  position,
const INTERFACETYPE *  str,
StringPosition  strStart = 0,
StringCount  strCount = StringEnd() 
)

Inserts a string at a specific position.

Parameters
[in]positionInsert position in the current string. StringEnd() is a valid position. If the position is out of bounds an error is returned.
[in]strString to be inserted.
[in]strStartStarting position of the string to be inserted. If the position is out of bounds an error is returned.
[in]strCountNumber of characters to be inserted. If the number of characters is too large an error is returned.
Returns
OK on success.

◆ Insert() [2/2]

MAXON_METHOD Result<void> Insert ( StringPosition  position,
CHARTYPE  ch 
)

Inserts a single unicode character at a specific position.

Parameters
[in]positionInsert position, needs to be within boundaries.
[in]chUnicode character to insert.
Returns
OK on success.

◆ GetPart()

MAXON_METHOD INTERFACETYPE* GetPart ( StringPosition  start,
StringCount  count 
) const

Creates a part of the current string.

Parameters
[in]startPosition where the new partial string will start.
[in]countNumber of characters for the partial string. If it is larger than the number of available characters an empty string will be returned.
Returns
The partial string, or empty string if 'start' was out of boundaries. Will be an empty reference if GetPart fails (apply iferr for error handling).

◆ ToUpper()

MAXON_METHOD INTERFACETYPE* ToUpper ( ) const

Returns the uppercase version of a string.

Returns
Uppercase version of a string. Will be an empty reference if ToUpper fails (apply iferr for error handling).

◆ ToLower()

MAXON_METHOD INTERFACETYPE* ToLower ( ) const

Returns the lowercase version of a string.

Returns
Lowercase version of a string. Will be an empty reference if ToLower fails (apply iferr for error handling).

◆ ComparePart()

MAXON_METHOD COMPARERESULT ComparePart ( const INTERFACETYPE *  str,
STRINGCOMPARISON  mode,
StringPosition  position,
StringCount  count 
) const

Compares a part of this against 'str' for exact match. Example:

"abcdefghijk"_s.ComparePart("bcd"_s,STRINGCOMPARISON::MEMORY,1,3);
@ MEMORY
default - fast comparison, memory block is directly compared. This does not result in a correct alpha...

returns COMPARESTRING::EQUAL for matching "bcd"

Parameters
[in]strComparison object.
[in]modeComparison mode.
[in]positionStarting position in the current string that 'str' will be compared against. The interval [position..count] will be clipped against valid boundaries.
[in]countNumber of characters in the current string that 'str' will be compared against. count can be longer than the string length and will be clipped accordingly.
Returns
See COMPARERESULT.

◆ Compare()

MAXON_FUNCTION COMPARERESULT Compare ( const INTERFACETYPE *  str,
STRINGCOMPARISON  mode = STRINGCOMPARISON::UNICODE_NUMBERS 
) const

Compares the object against 'str' for exact match.

Parameters
[in]strComparison object.
[in]modeComparison mode.
Returns
See COMPARERESULT.

◆ IsEqual()

MAXON_FUNCTION Bool IsEqual ( const INTERFACETYPE *  str) const

Compare strings for equality.

Returns
True if equal.

◆ GetHashCode()

MAXON_METHOD HashInt GetHashCode ( ) const

Returns the hash code of this @CLASS.

Returns
Hash code of this @CLASS.

◆ GetUniqueHashCode()

MAXON_METHOD UniqueHash GetUniqueHashCode ( ) const

Returns the 128-bit hash value of this @CLASS. The implementation ensures uniform distribution, so for practical purposes you can safely assume that two objects are equal if their hash values are equal.

Returns
Hash value of this @CLASS.

◆ SetChar()

MAXON_METHOD void SetChar ( Int  pos,
CHARTYPE  ch 
)

Changes the character at the given position (used internally by CharPtr).

Parameters
[in]posCharacter index. If it is negative the position is relative to end, e.g. -1 indicates the last character. The position must be within boundaries, however only a debug assert will happen otherwise.
[in]chCharacter value.

@MAXON_ANNOTATION{refclass=false}

◆ GetChar()

MAXON_METHOD CHARTYPE GetChar ( Int  pos) const

Retrieves the character at a given position. If the position is out of bounds 0 will be returned.

Parameters
[in]posCharacter position. If it is negative the position is relative to end, e.g. -1 indicates the last character. The position must be within boundaries, however only a debug assert will happen otherwise.
Returns
The character.

@MAXON_ANNOTATION{refclass=false}

◆ ToFloat64()

Converts a string to a 64-bit floating point value. This routine does no formula parsing. While leading whitespaces are allowed by default no trailing characters of any kind are allowed.

Parameters
[in]flagsOptional flags for the conversion.
Returns
Floating point value of the string.

◆ ToFloat32()

Converts a string to a 32-bit floating point value. This routine does no formula parsing. While leading whitespaces are allowed by default no trailing characters of any kind are allowed.

Parameters
[in]flagsOptional flags for the conversion.
Returns
Floating point value of the string.

◆ ToFloat()

Converts a string to a floating point value. This routine does no formula parsing. While leading whitespaces are allowed by default no trailing characters of any kind are allowed.

Parameters
[in]flagsOptional flags for the conversion.
Returns
Floating point value of the string.

◆ ToInt64()

Converts a string to a 64 bit integer value. This routine does no formula parsing and does not support any suffixes/prefixes except for 0x (hexadecimal numbers). While leading whitespaces are allowed by default no trailing characters of any kind are allowed.

Parameters
[in]flagsOptional flags for the conversion.
Returns
Integer value of the string.

◆ ToInt32()

Converts a string to a 32 bit integer value. This routine does no formula parsing and does not support any suffixes/prefixes except for 0x (hexadecimal numbers). While leading whitespaces are allowed by default no trailing characters of any kind are allowed.

Parameters
[in]flagsOptional flags for the conversion.
Returns
Integer value of the string.

◆ ToInt()

Converts a string to an integer value. This routine does no formula parsing and does not support any suffixes/prefixes except for 0x (hexadecimal numbers). While leading whitespaces are allowed by default no trailing characters of any kind are allowed.

Parameters
[in]flagsOptional flags for the conversion.
Returns
Integer value of the string.

◆ ToUInt64()

Converts a string to a 64 bit unsigned integer value. This routine does no formula parsing and does not support any suffixes/prefixes except for 0x (hexadecimal numbers). While leading whitespaces are allowed by default no trailing characters of any kind are allowed.

Parameters
[in]flagsOptional flags for the conversion.
Returns
Integer value of the string.

◆ ToUInt32()

Converts a string to a 32 bit unsigned integer value. This routine does no formula parsing and does not support any suffixes/prefixes except for 0x (hexadecimal numbers). While leading whitespaces are allowed by default no trailing characters of any kind are allowed.

Parameters
[in]flagsOptional flags for the conversion.
Returns
Integer value of the string.

◆ ToUInt()

Converts a string to an unsigned integer value. This routine does no formula parsing and does not support any suffixes/prefixes except for 0x (hexadecimal numbers). While leading whitespaces are allowed by default no trailing characters of any kind are allowed.

Parameters
[in]flagsOptional flags for the conversion.
Returns
Integer value of the string.

◆ FloatToString() [1/2]

static MAXON_FUNCTION REFTYPE FloatToString ( Float32  value,
Int  charsBeforeComma = STRING_DYNAMIC_DIGITS,
Int  digitsAfterComma = -3,
Bool  exponent = false,
CHARTYPE  fillChar = ' ' 
)
static

Converts a floating point value into formatted text.

Parameters
[in]valueFloating point value to convert into text.
[in]charsBeforeCommaCharacters before the decimal point. If STRING_DYNAMIC_DIGITS is passed or 'charsBeforeComma' is too low to represent 'value' it is automatically increased/adjusted. If 'charsBeforeComma' is positive and exponent is false fill characters will be added to the beginning. If STRING_MAXIMUM_PRECISION is passed, then the result will be an exact representation of the value (possibly using exponential notation).
[in]digitsAfterCommaDigits after the decimal point. If a negative number is passed the number of digits is automatically chosen and up to (-digitsAfterComma).
[in]exponentForce exponential-style output (e.g. 1.0e+10).
[in]fillCharFill character for digits before the decimal point. E.g. if you specify 4 for charsBeforeComma, '*' for fillChar and your value is 1.5 you'll get ***1.5 as a result. This value has no impact if exponent is true.
Returns
String object with the decimal text of the value.

◆ FloatToString() [2/2]

static MAXON_FUNCTION REFTYPE FloatToString ( Float64  value,
Int  charsBeforeComma = STRING_DYNAMIC_DIGITS,
Int  digitsAfterComma = -3,
Bool  exponent = false,
CHARTYPE  fillChar = ' ' 
)
static

Converts a floating point value into formatted text.

Parameters
[in]valueFloating point value to convert into text.
[in]charsBeforeCommaCharacters before the decimal point. If STRING_DYNAMIC_DIGITS is passed or 'charsBeforeComma' is too low to represent 'value' it is automatically increased/adjusted. If 'charsBeforeComma' is positive and exponent is false fill characters will be added to the beginning. If STRING_MAXIMUM_PRECISION is passed, then the result will be an exact representation of the value (possibly using exponential notation).
[in]digitsAfterCommaDigits after the decimal point. If a negative number is passed the number of digits is automatically chosen and up to (-digitsAfterComma).
[in]exponentForce exponential-style output (e.g. 1.0e+10).
[in]fillCharFill character for digits before the decimal point. E.g. if you specify 4 for charsBeforeComma, '*' for fillChar and your value is 1.5 you'll get ***1.5 as a result. This value has no impact if exponent is true.
Returns
String object with the decimal text of the value.

◆ AppendInt() [1/2]

MAXON_FUNCTION INTERFACETYPE* AppendInt ( Int32  v)

Appends a number to the current string.

Parameters
[in]vThe number that will be added.
Returns
The current string. Will be an empty reference if AppendInt fails (apply iferr for error handling). @MAXON_ANNOTATION{returnsThis,noResult}

◆ AppendUInt() [1/2]

MAXON_FUNCTION INTERFACETYPE* AppendUInt ( UInt32  v)

Appends a number to the current string.

Parameters
[in]vThe number that will be added.
Returns
The current string. Will be an empty reference if AppendUInt fails (apply iferr for error handling). @MAXON_ANNOTATION{returnsThis,noResult}

◆ AppendInt() [2/2]

MAXON_FUNCTION INTERFACETYPE* AppendInt ( Int64  v)

Appends a number to the current string.

Parameters
[in]vThe number that will be added.
Returns
The current string. Will be an empty reference if AppendInt fails (apply iferr for error handling). @MAXON_ANNOTATION{returnsThis,noResult}

◆ AppendUInt() [2/2]

MAXON_FUNCTION INTERFACETYPE* AppendUInt ( UInt64  v)

Appends a number to the current string.

Parameters
[in]vThe number that will be added.
Returns
The current string. Will be an empty reference if AppendUInt fails (apply iferr for error handling). @MAXON_ANNOTATION{returnsThis,noResult}

◆ IntToString() [1/2]

static MAXON_FUNCTION REFTYPE IntToString ( Int32  v)
static

Formats a Int32 value as decimal text.

Parameters
[in]vInt32 value.
Returns
String object with the decimal text of the value. Will be an empty reference on failure (apply iferr for error handling).

◆ UIntToString() [1/2]

static MAXON_FUNCTION REFTYPE UIntToString ( UInt32  v)
static

Formats a UInt32 value as decimal text.

Parameters
[in]vUInt32 value.
Returns
String object with the decimal text of the value. Will be an empty reference on failure (apply iferr for error handling).

◆ IntToString() [2/2]

static MAXON_FUNCTION REFTYPE IntToString ( Int64  v)
static

Formats a Int64 value as decimal text.

Parameters
[in]vInt64 value.
Returns
String object with the decimal text of the value. Will be an empty reference on failure (apply iferr for error handling).

◆ UIntToString() [2/2]

static MAXON_FUNCTION REFTYPE UIntToString ( UInt64  v)
static

Formats a UInt64 value as decimal text.

Parameters
[in]vInt64 value.
Returns
String object with the decimal text of the value. Will be an empty reference on failure (apply iferr for error handling).

◆ MemorySizeToString()

static MAXON_FUNCTION REFTYPE MemorySizeToString ( Int64  v,
Bool  mebibytes = true 
)
static

Formats a Int64 value as a memory information.

Parameters
[in]vThe size of bytes that should be formated as memory text.
[in]mebibytesdefines if a value of 1343443 is either output as "1.28 MiB" (mebibytes) or "1.34 MB" (megabytes).
Returns
String object for the given mem value.

◆ HexToString() [1/2]

static MAXON_FUNCTION REFTYPE HexToString ( UInt32  v,
Bool  prefix0x = true 
)
static

Formats a Int32 value as hexadecimal text.

Parameters
[in]vInt32 value.
[in]prefix0xStart the string with 0x as prefix.
Returns
String object with the hexadecimal text of the value.

◆ HexToString() [2/2]

static MAXON_FUNCTION REFTYPE HexToString ( UInt64  v,
Bool  prefix0x = true 
)
static

Formats a Int64 value as hexadecimal text.

Parameters
[in]vInt64 value.
[in]prefix0xStart the string with 0x as prefix.
Returns
String object with the hexadecimal text of the value.

◆ PointerToString()

static MAXON_FUNCTION REFTYPE PointerToString ( const void *  v)
static

Formats a pointer as hexadecimal text. The pointer starts with 0x prefix.

Parameters
[in]vPointer to convert.
Returns
String object with the hexadecimal text of the value.

◆ GetUtf32()

MAXON_METHOD Result<void> GetUtf32 ( Utf32CharBuffer stringData) const

Copies the string as UTF-32 encoded characters into the passed array. The array will be resized and contain the non \0 - terminated data.

Parameters
[out]stringDataThe array to receive the data.
Returns
OK on success.

◆ TrimLeft()

MAXON_METHOD Result<void> TrimLeft ( )

Removes all characters with value <= 0x20 (e.g. space, tab, line feed) at the beginning of the string.

Returns
OK on success.

◆ TrimRight()

MAXON_METHOD Result<void> TrimRight ( )

Removes all characters with value <= 0x20 (e.g. space, tab, line feed) at the end of the string.

Returns
OK on success.

◆ Split()

MAXON_METHOD Result<void> Split ( const REFTYPE &  splitSymbol,
Bool  trim,
const ValueReceiver< const REFTYPE & > &  parts 
) const

Splits the string into parts separated by the split symbol (e.g. a comma).

Parameters
[in]splitSymbolString containing the split symbol.
[in]trimIf true each separated part will be trimmed (see Trim).
[out]partsArray to be filled with the separated strings.
Returns
OK on success.

◆ Replace() [1/3]

MAXON_METHOD Result<Int> Replace ( CHARTYPE  find,
CHARTYPE  replace 
)

Replaces all occurrences of the character 'find' in the current string with the given character 'replace'.

Parameters
[in]findSearch character. Each occurrence will be replaced with 'replace'.
[in]replaceReplacement of 'find'.
Returns
Number of replaced characters.

◆ Replace() [2/3]

MAXON_METHOD Result<Int> Replace ( const REFTYPE &  find,
const REFTYPE &  replace 
)

Replaces all occurrences of string 'find' in the current string with the given string 'replace'.

Parameters
[in]findSearch string. Each occurrence will be replaced with 'replace'.
[in]replaceReplacement of 'find'. Can be an empty string, in which case all 'find' strings will be removed.
Returns
Number of replaced strings.

◆ Replace() [3/3]

MAXON_METHOD Result<Int> Replace ( CHARTYPE  find,
const REFTYPE &  replace 
)

Replaces all occurrences of the character 'find' in the current string with the given string 'replace'.

Parameters
[in]findSearch character. Each occurrence will be replaced with 'replace'.
[in]replaceReplacement of 'find'. Can be an empty string, in which case all 'find' characters will be removed.
Returns
Number of replaced strings.

◆ Find() [1/2]

MAXON_FUNCTION Bool Find ( const REFTYPE &  str,
Int pos,
StringPosition  start = 0 
) const

Searches for the first occurrence of 'str' within a string.

Parameters
[in]strThe search string.
[out]posPointer to be filled with the position where 'str' was found. This parameter can be a nullptr. In case no occurence was found *pos is initialized with InvalidArrayIndex.
[in]startStarting position within the current string to search from. If it is out of bounds the function will return false.
Returns
True if 'str' has been found, in that case *pos contains the position where the first occurance was found.

◆ FindLast() [1/2]

MAXON_FUNCTION Bool FindLast ( const REFTYPE &  str,
Int pos,
StringPosition  start = StringEnd() 
) const

Searches for the last occurrence of 'str' within a string.

Parameters
[in]strThe search string.
[out]posPointer to be filled with the position where 'str' was found. This parameter can be a nullptr. In case no occurence was found *pos is initialized with InvalidArrayIndex.
[in]startStarting position within the current string to search from (backwards). The character at the given position will not be included in the search. If it is out of bounds the function will return false.
Returns
True if 'str' has been found, in that case *pos contains the position where the last occurance was found.

◆ Find() [2/2]

MAXON_FUNCTION Bool Find ( CHARTYPE  ch,
Int pos,
StringPosition  start = 0 
) const

Searches for the first occurrence of character 'ch' within a string.

Parameters
[in]chThe search character.
[out]posPointer to be filled with the position where 'ch' was found. This parameter can be a nullptr. In case no occurence was found *pos is initialized with InvalidArrayIndex.
[in]startStarting position within the current string to search from. If it is out of bounds the function will return false.
Returns
True if 'ch' has been found, in that case *pos contains the position where the first occurance was found.

◆ FindLast() [2/2]

MAXON_FUNCTION Bool FindLast ( CHARTYPE  ch,
Int pos,
StringPosition  start = StringEnd() 
) const

Searches for the last occurrence of character 'ch' within a string.

Parameters
[in]chThe search character.
[out]posPointer to be filled with the position where 'ch' was found. This parameter can be a nullptr. In case no occurence was found *pos is initialized with InvalidArrayIndex.
[in]startStarting position within the current string to search from (backwards). The character at the given position will not be included in the search. If it is out of bounds the function will return false.
Returns
True if 'ch' has been found, in that case *pos contains the position where the last occurance was found.

◆ FindUpper()

MAXON_FUNCTION Bool FindUpper ( const REFTYPE &  str,
Int pos,
StringPosition  start = 0 
) const

Uppercase search for the first occurrence of 'str' within a string (which doesn't need to contain uppercase characters).

Parameters
[in]strThe search string, must be completely uppercase, otherwise no matches will be found.
[out]posPointer to be filled with the position where 'ch' was found. This parameter can be a nullptr. In case no occurence was found *pos is initialized with InvalidArrayIndex.
[in]startStarting position within the current string to search from. If it is out of bounds the function will return false.
Returns
True if 'str' has been found, in that case *pos contains the position where the first occurance was found.

◆ FindLastUpper()

MAXON_FUNCTION Bool FindLastUpper ( const REFTYPE &  str,
Int pos,
StringPosition  start = StringEnd() 
) const

Uppercase search for the last occurrence of 'str' within a string (which doesn't need to contain uppercase characters).

Parameters
[in]strThe search string, must be completely uppercase, otherwise no matches will be found.
[out]posPointer to be filled with the position where 'ch' was found. This parameter can be a nullptr. In case no occurence was found *pos is initialized with InvalidArrayIndex.
[in]startStarting position within the current string to search from (backwards). The character at the given position will not be included in the search. If it is out of bounds the function will return false.
Returns
True if 'str' has been found, in that case *pos contains the position where the last occurance was found.

◆ GetLeftPart()

MAXON_FUNCTION INTERFACETYPE* GetLeftPart ( StringPosition  start) const

Returns the string part left of the given position. The character at position will not be included.

Parameters
[in]startPartitioning position.
Returns
The partial string, or empty string if 'start' was out of boundaries. Will be an empty reference on failure (apply iferr for error handling).

◆ GetRightPart()

MAXON_FUNCTION INTERFACETYPE* GetRightPart ( StringPosition  start) const

Returns the string part right of the given position. The character at position will be included.

Parameters
[in]startPartitioning position.
Returns
The partial string, or empty string if 'start' was out of boundaries. Will be an empty reference on failure (apply iferr for error handling).

◆ StartsWith() [1/2]

MAXON_FUNCTION Bool StartsWith ( CHARTYPE  ch) const

Checks if the string starts with a certain character.

Parameters
[in]chThe character to be checked.
Returns
True if the string starts with the given character.

◆ StartsWith() [2/2]

MAXON_FUNCTION Bool StartsWith ( const REFTYPE &  str) const

Checks if the current string starts with a given string.

Parameters
[in]strThe string part.
Returns
True if the string starts with the string 'str'.

◆ EndsWith() [1/2]

MAXON_FUNCTION Bool EndsWith ( CHARTYPE  ch) const

Checks if the string ends with a certain character.

Parameters
[in]chThe character to be checked.
Returns
True if the string end with the given character.

◆ EndsWith() [2/2]

MAXON_FUNCTION Bool EndsWith ( const REFTYPE &  str) const

Checks if the current string end with a given string.

Parameters
[in]strThe string part.
Returns
True if the string ends with the string 'str'.

◆ Trim()

MAXON_FUNCTION Result<void> Trim ( )

Removes all characters with value <= 0x20 (e.g. space, tab, line feed) at the beginning and the end of the string.

Returns
OK on success.