diff options
Diffstat (limited to 'dev/CompilerKit/StringKit.h')
| -rw-r--r-- | dev/CompilerKit/StringKit.h | 94 |
1 files changed, 0 insertions, 94 deletions
diff --git a/dev/CompilerKit/StringKit.h b/dev/CompilerKit/StringKit.h deleted file mode 100644 index eb7ccc3..0000000 --- a/dev/CompilerKit/StringKit.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * ======================================================== - * - * CompilerKit - * Copyright (C) 2024-2025 Amlal El Mahrouss, Licensed under the Apache 2.0 license. - * - * ======================================================== - */ - -#ifndef __NECTI_STRINGKIT__ -#define __NECTI_STRINGKIT__ - -#include <CompilerKit/Defines.h> -#include <CompilerKit/ErrorOr.h> - -/// =========================================================== /// -/// @file StringKit.h -/// @author Amlal El Mahrouss -/// @brief StringKit for CompilerKit. -/// =========================================================== /// - -namespace CompilerKit { -class StringBuilder; -class BasicString; - -/** - * @brief BasicString class, contains a C string and manages it. - * @note No need to manage it it's getting deleted by default. - */ - -class BasicString final { - public: - explicit BasicString() = delete; - - explicit BasicString(SizeType Sz) noexcept : m_Sz(Sz) { - m_Data = new Char[Sz]; - assert(m_Data); - } - - ~BasicString() noexcept { - if (m_Data) { - memset(m_Data, 0, m_Sz); - delete[] m_Data; - - m_Data = nullptr; - } - } - - NECTI_COPY_DEFAULT(BasicString); - - Char* Data(); - const Char* CData() const; - SizeType Length() const; - - bool operator==(const Char* rhs) const; - bool operator!=(const Char* rhs) const; - - bool operator==(const BasicString& rhs) const; - bool operator!=(const BasicString& rhs) const; - - BasicString& operator+=(const Char* rhs); - BasicString& operator+=(const Char rhs); - BasicString& operator+=(const BasicString& rhs); - - explicit operator bool() { return m_Data && m_Data[0] != 0; } - - bool operator!() { return !m_Data || m_Data[0] == 0; } - - private: - Char* m_Data{nullptr}; - SizeType m_Sz{0}; - SizeType m_Cur{0}; - - friend class StringBuilder; -}; - -/** - * @brief StringBuilder class - * @note These results shall call be delete[] after they're used. - */ -struct StringBuilder final { - static BasicString Construct(const Char* data); - static BasicString FromInt(const char* fmt, int n); - static BasicString FromBool(const char* fmt, bool n); - static BasicString Format(const char* fmt, const char* from); - static Bool Equals(const char* lhs, const char* rhs); -}; - -using BasicStringOr = ErrorOr<BasicString>; -using BasicStringPtr = BasicString*; -using BasicStringRef = Ref<BasicString>; -} // namespace CompilerKit - -#endif /* ifndef __NECTI_STRINGKIT__ */ |
