Sane C++ Libraries: SC::String Struct Reference (original) (raw)

A non-modifiable owning string with associated encoding. More...

#include <[String.h](String%5F8h%5Fsource.html)>

Public Member Functions
String (StringEncoding encoding=StringEncoding::Utf8)
Builds an empty String with a given Encoding.
String (StringSpan sv)
Builds String from a StringSpan.
String (Buffer &&otherData, StringEncoding encoding)
Builds a String from a buffer ensuring zero termination.
template<size_t N>
String (const char(&text)[N])
Builds String with a null terminated char string literal.
bool owns (StringSpan view) const
Checks if the memory pointed by the StringSpan is owned by this String.
bool assign (StringSpan sv)
Assigns a StringSpan to this String, replacing existing contents.
StringEncoding getEncoding () const
Get StringSpan encoding.
size_t sizeInBytesIncludingTerminator () const
Get length of the string in bytes (including null terminator bytes)
const char * bytesIncludingTerminator () const
Access current string content as read-only null-terminated const char*
bool isEmpty () const
Check if String is empty.
StringSpan view () const SC_LANGUAGE_LIFETIME_BOUND
Obtain a null-terminated StringSpan from current String.
bool operator== (const String &other) const
Check if current String is same as other String.
bool operator!= (const String &other) const
Check if current String is different from other String.
bool operator== (const StringSpan other) const
Check if current String is same as other StringSpan.
bool operator!= (const StringSpan other) const
Check if current String is different from other StringSpan.
template<size_t N>
bool operator== (const char(&other)[N]) const
Check if current String is equal to the ascii string literal.
template<size_t N>
bool operator!= (const char(&other)[N]) const
Check if current String is different from the ascii string literal.
bool operator< (const StringSpan other) const
Check if current String is smaller to another StringView (using StringView::compare)
template<size_t N>
String & operator= (const char(&text)[N])
Assigns an ascii string literal to current String.
String & operator= (StringSpan view)
Assigns (copy) contents of given StringSpan in current String.
Protected Member Functions
Protected Attributes
StringEncoding encoding
Buffer data
Friends
struct StringTest
template
struct GrowableBuffer

A non-modifiable owning string with associated encoding.

SC::String is (currently) implemented as a SC::Vector with the associated string encoding. A SC::StringSpan can be obtained from it calling SC::String::view method but it's up to the user making sure that the usage of such SC::StringSpan doesn't exceed lifetime of the SC::String it originated from (but thankfully Address Sanitizer will catch the issue if it goes un-noticed).

String() [1/4]

SC::String::String ( StringEncoding encoding = StringEncoding::Utf8) inline

Builds an empty String with a given Encoding.

Parameters

encoding The encoding of the String

String() [2/4]

Builds String from a StringSpan.

Parameters

Warning

This function will assert if StringSpan::assign fails

String() [3/4]

SC::String::String ( Buffer && otherData,
StringEncoding encoding )

Builds a String from a buffer ensuring zero termination.

Warning

This function will assert if StringSpan::assign fails

String() [4/4]

SC::String::String ( const char(&) _text_[N]) inline

Builds String with a null terminated char string literal.

Template Parameters

N Length of the string literal (including null terminator)

Parameters

text Pointer to string literal

Warning

This function will assert if StringSpan::assign fails

assign()

bool SC::String::assign ( StringSpan sv) nodiscard

Assigns a StringSpan to this String, replacing existing contents.

Parameters

Returns

true if StringSpan is assigned successfully

Note

This method will invalidate any StringSpan::view previously obtained

bytesIncludingTerminator()

const char * SC::String::bytesIncludingTerminator ( ) const inlinenodiscard

Access current string content as read-only null-terminated const char*

Returns

A null terminated const char*

getEncoding()

StringEncoding SC::String::getEncoding ( ) const inlinenodiscard

isEmpty()

bool SC::String::isEmpty ( ) const inlinenodiscard

operator!=() [1/3]

bool SC::String::operator!= ( const char(&) _other_[N]) const inlinenodiscard

Check if current String is different from the ascii string literal.

Template Parameters

N Length of string literal, including null terminator

Parameters

Returns

true if the String is different from other

operator!=() [2/3]

bool SC::String::operator!= ( const String & other) const inlinenodiscard

Check if current String is different from other String.

Parameters

Returns

true if the two strings are different

operator!=() [3/3]

bool SC::String::operator!= ( const StringSpan other) const inlinenodiscard

operator<()

bool SC::String::operator< ( const StringSpan other) const inlinenodiscard

operator=() [1/2]

String & SC::String::operator= ( const char(&) _text_[N]) inline

Assigns an ascii string literal to current String.

Template Parameters

N Length of string literal, including null terminator

Parameters

Returns

Reference to current String

Warning

Assignment operator will assert if String::assign fails

operator=() [2/2]

Assigns (copy) contents of given StringSpan in current String.

Warning

Assignment operator will assert if String::assign fails

operator==() [1/3]

bool SC::String::operator== ( const char(&) _other_[N]) const inlinenodiscard

Check if current String is equal to the ascii string literal.

Template Parameters

N Length of string literal, including null terminator

Parameters

Returns

true if the String is the same as other

operator==() [2/3]

bool SC::String::operator== ( const String & other) const inlinenodiscard

Check if current String is same as other String.

Parameters

Returns

true if the two strings are equal

operator==() [3/3]

bool SC::String::operator== ( const StringSpan other) const inlinenodiscard

owns()

bool SC::String::owns ( StringSpan view) const nodiscard

sizeInBytesIncludingTerminator()

size_t SC::String::sizeInBytesIncludingTerminator ( ) const inlinenodiscard

Get length of the string in bytes (including null terminator bytes)

Returns

Size in bytes including null terminator

view()


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