123456789101112131415161718192021222324252627282930313233343536373839404142 |
- #ifndef STRING_H
- #define STRING_H
- #include "utils/Types.h"
- class String final {
- public:
- String();
- String(const char* str);
- bool operator==(const String& other) const;
- bool operator!=(const String& other) const;
- operator const char*() const;
- char operator[](uint index) const;
- uint getLength() const;
- template<typename T>
- String& append(const char* format, const T& t) {
- uint left = MAX_LENGTH - length;
- uint written = snprintf(data + length, left, format, t);
- if(written < left) {
- length += written;
- } else {
- length = MAX_LENGTH;
- }
- return *this;
- }
- String& append(char c);
- String& append(const char* str);
- String& append(uint i);
- String& append(int i);
- String& append(float f);
- String& append(bool b);
- private:
- static constexpr uint MAX_LENGTH = 255;
- char data[MAX_LENGTH];
- u8 length;
- };
- #endif
|