#pragma once #include namespace glcr { class StringView { public: static const uint64_t npos = -1; StringView(); StringView(const StringView& other) = default; StringView(const char* str); StringView(const char* str, uint64_t count); const char* data() const; uint64_t size() const; bool empty() const; char at(uint64_t pos) const; char operator[](uint64_t pos) const; uint64_t find(char c, uint64_t pos = 0) const; StringView substr(uint64_t start, uint64_t count) const; private: const char* value_ = nullptr; uint64_t size_ = 0; }; bool operator==(const StringView& str1, const StringView& str2); bool operator!=(const StringView& str1, const StringView& str2); } // namespace glcr