26#ifndef WATER_STRING_H_INCLUDED
27#define WATER_STRING_H_INCLUDED
104 String (
const std::string&);
124 size_t hash()
const noexcept;
127 int length()
const noexcept;
159 void append (
const String& textToAppend,
size_t maxCharsToTake);
174 template <
class CharPo
inter>
176 const CharPointer endOfTextToAppend)
178 wassert (startOfTextToAppend.getAddress() !=
nullptr && endOfTextToAppend.getAddress() !=
nullptr);
180 size_t extraBytesNeeded = 0, numChars = 1;
182 for (CharPointer
t (startOfTextToAppend);
t != endOfTextToAppend && !
t.isEmpty(); ++numChars)
185 if (extraBytesNeeded > 0)
203 template <
class CharPo
inter>
206 if (textToAppend.getAddress() !=
nullptr)
208 size_t extraBytesNeeded = 0, numChars = 1;
210 for (CharPointer
t (textToAppend); numChars <= maxCharsToTake && !
t.isEmpty(); ++numChars)
213 if (extraBytesNeeded > 0)
225 template <
class CharPo
inter>
591 bool includeSubStringInResult,
592 bool ignoreCase)
const;
603 bool includeSubStringInResult,
604 bool ignoreCase)
const;
620 bool includeSubStringInResult,
621 bool ignoreCase)
const;
631 bool includeSubStringInResult,
632 bool ignoreCase)
const;
684 int numCharactersToReplace,
790 int numberOfTimesToRepeat);
829 explicit
String (
int decimalInteger);
834 explicit
String (
unsigned int decimalInteger);
839 explicit
String (
short decimalInteger);
844 explicit
String (
unsigned short decimalInteger);
859 explicit
String (
long decimalInteger);
864 explicit
String (
unsigned long decimalInteger);
870 explicit
String (
float floatValue);
876 explicit
String (
double doubleValue);
885 String (
float floatValue,
int numberOfDecimalPlaces);
894 String (
double doubleValue,
int numberOfDecimalPlaces);
999 std::wstring toUTF16()
const;
1022 static String fromUTF8 (
const char* utf8buffer,
int bufferSizeBytes = -1);
1073 static String fromCFString (CFStringRef cfString);
1079 CFStringRef toCFString()
const;
1085 String convertToPrecomposedUnicode()
const;
1121String operator+ (
String string1,
char characterToAppend);
1127String& operator<< (
String& string1,
char characterToAppend);
1181template <class traits>
1182std::basic_ostream <
char, traits>& operator<< (
std::basic_ostream <
char, traits>& stream,
const String& stringToWrite)
1184 return stream << stringToWrite.toRawUTF8();
1188OutputStream&
operator<< (OutputStream& stream,
const String& stringToWrite);
1191OutputStream&
operator<< (OutputStream& stream, StringRef stringToWrite);
#define noexcept
Definition DistrhoDefines.h:72
int64_t int64
Definition basics.h:91
uint32 water_uchar
Definition CharacterFunctions.h:38
CharPointer_UTF8 text
Definition String.h:1095
String() noexcept
Definition String.cpp:217
Definition CharPointer_UTF8.h:45
static size_t getBytesRequiredFor(const water_uchar charToWrite) noexcept
Definition CharPointer_UTF8.h:294
void writeWithCharLimit(const CharPointer src, const int maxChars) noexcept
Definition CharPointer_UTF8.h:400
String replaceSection(int startIndex, int numCharactersToReplace, StringRef stringToInsert) const
Definition String.cpp:1099
~String() noexcept
Definition String.cpp:221
String fromFirstOccurrenceOf(StringRef substringToStartFrom, bool includeSubStringInResult, bool ignoreCase) const
Definition String.cpp:1439
bool isQuotedString() const
Definition String.cpp:1487
static String charToString(water_uchar character)
Definition String.cpp:311
bool startsWithChar(water_uchar character) const noexcept
Definition String.cpp:1276
int indexOfAnyOf(StringRef charactersToLookFor, int startIndex=0, bool ignoreCase=false) const noexcept
Definition String.cpp:788
String trimEnd() const
Definition String.cpp:1572
String trimCharactersAtStart(StringRef charactersToTrim) const
Definition String.cpp:1586
int indexOfWholeWord(StringRef wordToLookFor) const noexcept
Definition String.cpp:931
String trimCharactersAtEnd(StringRef charactersToTrim) const
Definition String.cpp:1596
void append(const String &textToAppend, size_t maxCharsToTake)
Definition String.cpp:628
bool containsChar(water_uchar character) const noexcept
Definition String.cpp:921
static String toHexString(int number)
Definition String.cpp:1830
String upToFirstOccurrenceOf(StringRef substringToEndWith, bool includeSubStringInResult, bool ignoreCase) const
Definition String.cpp:1463
CharPointer_UTF8 toUTF8() const
Definition String.cpp:1906
size_t getByteOffsetOfEnd() const noexcept
Definition String.cpp:461
static String formatted(const String formatString,...)
Definition String.cpp:1747
bool equalsIgnoreCase(const String &other) const noexcept
Definition String.cpp:518
bool isNotEmpty() const noexcept
Definition String.h:244
size_t getNumBytesAsUTF8() const noexcept
Definition String.cpp:1956
bool containsWholeWord(StringRef wordToLookFor) const noexcept
Definition String.cpp:975
float getFloatValue() const noexcept
Definition String.cpp:1783
String retainCharacters(StringRef charactersToRetain) const
Definition String.cpp:1620
bool endsWithIgnoreCase(StringRef text) const noexcept
Definition String.cpp:1313
double getDoubleValue() const noexcept
Definition String.cpp:1784
int length() const noexcept
Definition String.cpp:451
String toUpperCase() const
Definition String.cpp:1331
int64 getLargeIntValue() const noexcept
Definition String.cpp:1782
String substring(int startIndex, int endIndex) const
Definition String.cpp:1373
bool endsWithChar(water_uchar character) const noexcept
Definition String.cpp:1284
String paddedLeft(water_uchar padCharacter, int minimumLength) const
Definition String.cpp:1042
void appendCharPointer(const CharPointer textToAppend)
Definition String.h:226
static String createStringFromData(const void *data, int size)
Definition String.cpp:1721
String trimStart() const
Definition String.cpp:1559
bool containsWholeWordIgnoreCase(StringRef wordToLookFor) const noexcept
Definition String.cpp:980
int lastIndexOfAnyOf(StringRef charactersToLookFor, bool ignoreCase=false) const noexcept
Definition String.cpp:904
String & operator+=(const String &stringToAppend)
Definition String.cpp:665
String trim() const
Definition String.cpp:1540
static String repeatedString(StringRef stringToRepeat, int numberOfTimesToRepeat)
Definition String.cpp:1028
String quoted(water_uchar quoteCharacter='"') const
Definition String.cpp:1509
CharPointer_UTF8 text
Definition String.h:1095
String upToLastOccurrenceOf(StringRef substringToFind, bool includeSubStringInResult, bool ignoreCase) const
Definition String.cpp:1475
String unquoted() const
Definition String.cpp:1495
int getHexValue32() const noexcept
Definition String.cpp:1862
void appendCharPointer(const CharPointer_UTF8 startOfTextToAppend, const CharPointer_UTF8 endOfTextToAppend)
Definition String.cpp:639
String dropLastCharacters(int numberToDrop) const
Definition String.cpp:1429
bool endsWith(StringRef text) const noexcept
Definition String.cpp:1296
const char * toRawUTF8() const
Definition String.cpp:1925
String fromLastOccurrenceOf(StringRef substringToFind, bool includeSubStringInResult, bool ignoreCase) const
Definition String.cpp:1451
int indexOfIgnoreCase(StringRef textToLookFor) const noexcept
Definition String.cpp:813
int hashCode() const noexcept
Definition String.cpp:489
bool matchesWildcard(StringRef wildcard, bool ignoreCase) const noexcept
Definition String.cpp:1022
bool startsWithIgnoreCase(StringRef text) const noexcept
Definition String.cpp:1271
int getIntValue() const noexcept
Definition String.cpp:1781
bool startsWith(StringRef text) const noexcept
Definition String.cpp:1266
int compareNatural(StringRef other, bool isCaseSensitive=false) const noexcept
Definition String.cpp:622
String() noexcept
Definition String.cpp:217
void swapWith(String &other) noexcept
Definition String.cpp:231
String replace(StringRef stringToReplace, StringRef stringToInsertInstead, bool ignoreCase=false) const
Definition String.cpp:1159
bool containsNonWhitespaceChars() const noexcept
Definition String.cpp:1699
int lastIndexOfChar(water_uchar character) const noexcept
Definition String.cpp:776
int compare(const String &other) const noexcept
Definition String.cpp:524
void appendCharPointer(const CharPointer textToAppend, size_t maxCharsToTake)
Definition String.h:204
void preallocateBytes(size_t numBytesNeeded)
Definition String.cpp:255
bool containsAnyOf(StringRef charactersItMightContain) const noexcept
Definition String.cpp:1690
String getLastCharacters(int numCharacters) const
Definition String.cpp:1434
int getTrailingIntValue() const noexcept
Definition String.cpp:1786
int64 hashCode64() const noexcept
Definition String.cpp:490
water_uchar getLastCharacter() const noexcept
Definition String.cpp:1368
String & operator=(const String &other) noexcept
Definition String.cpp:242
size_t copyToUTF8(CharPointer_UTF8::CharType *destBuffer, size_t maxBufferSizeBytes) const noexcept
Definition String.cpp:1950
bool containsOnly(StringRef charactersItMightContain) const noexcept
Definition String.cpp:1681
static String fromUTF8(const char *utf8buffer, int bufferSizeBytes=-1)
Definition String.cpp:1961
int compareIgnoreCase(const String &other) const noexcept
Definition String.cpp:526
int64 getHexValue64() const noexcept
Definition String.cpp:1863
int lastIndexOf(StringRef textToLookFor) const noexcept
Definition String.cpp:860
int lastIndexOfIgnoreCase(StringRef textToLookFor) const noexcept
Definition String.cpp:882
String toLowerCase() const
Definition String.cpp:1349
void clear() noexcept
Definition String.cpp:236
String replaceCharacters(StringRef charactersToReplace, StringRef charactersToInsertInstead) const
Definition String.cpp:1240
bool containsIgnoreCase(StringRef text) const noexcept
Definition String.cpp:926
int indexOf(StringRef textToLookFor) const noexcept
Definition String.cpp:808
int getReferenceCount() const noexcept
Definition String.cpp:260
String replaceCharacter(water_uchar characterToReplace, water_uchar characterToInsertInstead) const
Definition String.cpp:1217
bool isEmpty() const noexcept
Definition String.h:238
size_t hash() const noexcept
Definition String.cpp:491
bool contains(StringRef text) const noexcept
Definition String.cpp:916
int indexOfChar(water_uchar characterToLookFor) const noexcept
Definition String.cpp:751
String initialSectionContainingOnly(StringRef permittedCharacters) const
Definition String.cpp:1663
String removeCharacters(StringRef charactersToRemove) const
Definition String.cpp:1642
String initialSectionNotContaining(StringRef charactersToStopAt) const
Definition String.cpp:1672
String paddedRight(water_uchar padCharacter, int minimumLength) const
Definition String.cpp:1069
void appendCharPointer(const CharPointer startOfTextToAppend, const CharPointer endOfTextToAppend)
Definition String.h:175
CharPointer_UTF8 getCharPointer() const noexcept
Definition String.h:982
int indexOfWholeWordIgnoreCase(StringRef wordToLookFor) const noexcept
Definition String.cpp:953
std::string toStdString() const
Definition String.cpp:1930
Definition StringRef.h:67
* e
Definition inflate.c:1404
struct huft * t
Definition inflate.c:943
unsigned s
Definition inflate.c:1555
virtual ASIOError start()=0
JSAMPIMAGE data
Definition jpeglib.h:945
#define wassert(expression)
Definition juce_Uuid.h:141
Definition AudioSampleBuffer.h:33
unsigned long long uint64
Definition water.h:102
OutputStream & operator<<(OutputStream &stream, const MemoryOutputStream &streamToRead)
Definition MemoryOutputStream.cpp:194
long long int64
Definition water.h:100
Type * addBytesToPointer(Type *basePointer, IntegerType bytes) noexcept
Definition Memory.h:56
uint32 water_uchar
Definition CharacterFunctions.h:38
#define false
Definition ordinals.h:83
PreallocationBytes(size_t) noexcept
Definition String.cpp:248
StartEndString(CharPointer_UTF8 s, CharPointer_UTF8 e) noexcept
Definition String.h:1195
CharPointer_UTF8 end
Definition String.h:1197
CharPointer_UTF8 start
Definition String.h:1197
size_t numBytes
Definition String.h:1101
const char * text
Definition swell-functions.h:167
#define const
Definition zconf.h:137