diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-11-24 03:02:43 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-11-24 03:02:43 +0100 |
| commit | 83d870e58457a1d335a1d9b9966a6a1887cc297b (patch) | |
| tree | 72888f88c7728c82f3f6df1f4f70591de15eab36 /dev/kernel/NeKit/KString.h | |
| parent | ab37adbacf0f33845804c788b39680cd754752a8 (diff) | |
feat! breaking changes on kernel sources.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/NeKit/KString.h')
| -rw-r--r-- | dev/kernel/NeKit/KString.h | 92 |
1 files changed, 0 insertions, 92 deletions
diff --git a/dev/kernel/NeKit/KString.h b/dev/kernel/NeKit/KString.h deleted file mode 100644 index fa83fed4..00000000 --- a/dev/kernel/NeKit/KString.h +++ /dev/null @@ -1,92 +0,0 @@ -/* ======================================== - - Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. - -======================================== */ - -#pragma once - -#include <CompilerKit/CompilerKit.h> -#include <NeKit/Defines.h> -#include <NeKit/ErrorOr.h> -#include <NeKit/KernelPanic.h> -#include <NeKit/Utils.h> - -namespace Kernel { -inline auto kMinimumStringSize = 8196; - -/// @brief Kernel string class, not dynamic. -template <typename CharKind = Char> -class KBasicString final { - public: - explicit KBasicString() { - fDataSz = kMinimumStringSize; - - fData = new CharKind[fDataSz]; - MUST_PASS(fData); - - rt_set_memory(fData, 0, fDataSz); - } - - explicit KBasicString(SizeT Sz) : fDataSz(Sz) { - MUST_PASS(Sz > 1); - - fData = new CharKind[Sz]; - MUST_PASS(fData); - - rt_set_memory(fData, 0, Sz); - } - - ~KBasicString() { - if (fData) { - delete[] fData; - fData = nullptr; - } - } - - NE_COPY_DEFAULT(KBasicString) - - CharKind* Data(); - const CharKind* CData() const; - Size Length() const; - - bool operator==(const CharKind* rhs) const; - bool operator!=(const CharKind* rhs) const; - - bool operator==(const KBasicString<CharKind>& rhs) const; - bool operator!=(const KBasicString<CharKind>& rhs) const; - - KBasicString<CharKind>& operator+=(const CharKind* rhs); - KBasicString<CharKind>& operator+=(const KBasicString<CharKind>& rhs); - - operator const char*() { return fData; } - - operator bool() { return fData; } - - bool operator!() { return fData; } - - private: - CharKind* fData{nullptr}; - Size fDataSz{0}; - Size fCur{0}; - - friend class KStringBuilder; -}; - -using KString = KBasicString<>; -using KStringOr = ErrorOr<KString>; - -class KStringBuilder final { - public: - template <typename CharKind = Char> - static ErrorOr<KBasicString<CharKind>> Construct(const CharKind* data); - template <typename CharKind = Char> - static const CharKind* FromBool(const CharKind* fmt, bool n); - template <typename CharKind = Char> - static const CharKind* Format(const CharKind* fmt, const CharKind* from); - template <typename CharKind = Char> - static bool Equals(const CharKind* lhs, const CharKind* rhs); -}; -} // namespace Kernel - -#include <NeKit/KString.inl> |
