The Pedigree Project 0.1
Public Member Functions | Private Member Functions | Private Attributes | List of all members
ConstantString< N > Class Template Reference

#include <String.h>

+ Inheritance diagram for ConstantString< N >:
+ Collaboration diagram for ConstantString< N >:

Public Member Functions

 ConstantString (const char str[N])
 
virtual void clear () noexcept override
 
- Public Member Functions inherited from String
 String ()
 
 String (const char *s)
 
 String (const char *s, size_t length)
 
 String (const char *s, size_t length, bool unsafe)
 
 String (const Cord &x)
 
 String (const String &x)
 
 String (const StringView &x)
 
 String (String &&x) noexcept
 
String & operator= (String &&x) noexcept
 
String & operator= (const Cord &x)
 
String & operator= (const String &x)
 
String & operator= (const char *s)=delete
 
 operator const char * () const
 
 operator StringView () const
 
String & operator+= (const String &x)
 
String & operator+= (const char *s)
 
bool operator== (const String &s) const
 
bool operator== (const StringView &s) const
 
bool operator== (const char *s) const
 
bool compare (const char *s, size_t len) const
 
template<size_t N>
bool compare (const char(&s)[N]) const
 
char operator[] (size_t i) const
 
const char * cstr () const
 
size_t length () const
 
size_t size () const
 
uint32_t hash () const
 
uint32_t hash ()
 
size_t nextCharacter (size_t c) const
 
size_t prevCharacter (size_t c) const
 
void lchomp ()
 
void chomp ()
 
void strip ()
 
void lstrip ()
 
void rstrip ()
 
void ltrim (size_t n)
 
void rtrim (size_t n)
 
String split (size_t offset)
 
void split (size_t offset, String &back)
 
Vector< String > tokenise (char token)
 
void tokenise (char token, Vector< String > &output) const
 
void tokenise (char token, Vector< StringView > &output) const
 
void Format (const char *format,...) FORMAT(printf
 
template<size_t N>
void void assign (const char(&s)[N])
 
void assign (const String &x)
 
void assign (const Cord &x)
 
void assign (const char *s, size_t len=0, bool unsafe=false)
 
void reserve (size_t size)
 
void downsize ()
 
bool endswith (const char c) const
 
bool endswith (const String &s) const
 
bool endswith (const char *s, size_t len=0) const
 
bool startswith (const char c) const
 
bool startswith (const String &s) const
 
bool startswith (const char *s, size_t len=0) const
 
ssize_t find (const char c) const
 
ssize_t rfind (const char c) const
 
String copy () const
 
StringView view () const
 

Private Member Functions

virtual char * extract () const override
 
virtual bool resizable () const override
 
virtual bool assignable () const override
 

Private Attributes

char m_Data [N]
 

Additional Inherited Members

- Static Public Member Functions inherited from String
static size_t Utf32ToUtf8 (uint32_t utf32, char *utf8)
 
- Protected Member Functions inherited from String
bool iswhitespace (const char c) const
 
void reserve (size_t size, bool zero)
 
void computeHash ()
 
uint32_t computeHash () const
 
void setLength (size_t n)
 
void setSize (size_t n)
 

Detailed Description

template<size_t N>
class ConstantString< N >

Class for immmutable strings with values known at compile time.

Todo:
make String hashes more expressive so we can do a compile-time hash of these ConstantString objects and avoid the runtime computation.

Definition at line 257 of file String.h.

Constructor & Destructor Documentation

◆ ConstantString()

template<size_t N>
ConstantString< N >::ConstantString ( const char  str[N])
inline

Definition at line 259 of file String.h.

Member Function Documentation

◆ assignable()

template<size_t N>
virtual bool ConstantString< N >::assignable ( ) const
inlineoverrideprivatevirtual

Is this string assignable?

Reimplemented from String.

Definition at line 277 of file String.h.

◆ clear()

template<size_t N>
virtual void ConstantString< N >::clear ( )
inlineoverridevirtualnoexcept

Reimplemented from String.

Definition at line 266 of file String.h.

◆ extract()

template<size_t N>
virtual char * ConstantString< N >::extract ( ) const
inlineoverrideprivatevirtual

Extract the correct string buffer for this string.

Reimplemented from String.

Definition at line 269 of file String.h.

◆ resizable()

template<size_t N>
virtual bool ConstantString< N >::resizable ( ) const
inlineoverrideprivatevirtual

Is this string resizable?

Reimplemented from String.

Definition at line 273 of file String.h.

Member Data Documentation

◆ m_Data

template<size_t N>
char ConstantString< N >::m_Data[N]
private

Definition at line 281 of file String.h.


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