summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/NeKit/KString.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-11-24 03:02:43 +0100
committerAmlal El Mahrouss <amlal@nekernel.org>2025-11-24 03:02:43 +0100
commit83d870e58457a1d335a1d9b9966a6a1887cc297b (patch)
tree72888f88c7728c82f3f6df1f4f70591de15eab36 /dev/kernel/NeKit/KString.h
parentab37adbacf0f33845804c788b39680cd754752a8 (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.h92
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>