#pragma once #include struct StringView { size_t size; const char* data; public: StringView() { data = nullptr; size = 0; } StringView(const char* data, size_t size) { this->data = data; this->size = size; } }; struct StringBuilder { size_t size; size_t capacity; char* data; public: StringBuilder() { size = 0; capacity = 10; data = (char*)malloc(capacity * sizeof(char)); } private: void ensureSize(size_t newSize) { if (newSize <= capacity) return; capacity = capacity + (capacity / 2); data = (char*)realloc(data, capacity * sizeof(char)); } public: void PushChar(char c) { ensureSize(size + 1); data[size++] = c; } };