diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-02 15:57:26 -0500 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-02 15:57:26 -0500 |
| commit | 825b4f09ca6f551551c4f3be5d72517eab504860 (patch) | |
| tree | 8f53fef512789b75c6ee80d3b240a635c071fa22 /src/kernel/NeKit/KString.h | |
| parent | 28eafc395f1e6e2cb195403f28f896ad00984746 (diff) | |
chore: new Kernel API for KString, ArrayList and ErrorOr.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'src/kernel/NeKit/KString.h')
| -rw-r--r-- | src/kernel/NeKit/KString.h | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/src/kernel/NeKit/KString.h b/src/kernel/NeKit/KString.h index fa0ebcbf..a27084cb 100644 --- a/src/kernel/NeKit/KString.h +++ b/src/kernel/NeKit/KString.h @@ -13,14 +13,14 @@ #include <NeKit/Utils.h> namespace Kernel { -inline auto kMinimumStringSize = 8196; +inline constexpr Int kMinimumStringSize = 8196; /// @brief Kernel string class, not dynamic. -template <typename CharKind = Char> +template <typename CharKind = Char, Int MinSz = kMinimumStringSize> class KBasicString final { public: explicit KBasicString() { - fDataSz = kMinimumStringSize; + fDataSz = MinSz; fData = new CharKind[fDataSz]; MUST_PASS(fData); @@ -53,15 +53,15 @@ class KBasicString final { 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; + bool operator==(const KBasicString<CharKind, MinSz>& rhs) const; + bool operator!=(const KBasicString<CharKind, MinSz>& rhs) const; - KBasicString<CharKind>& operator+=(const CharKind* rhs); - KBasicString<CharKind>& operator+=(const KBasicString<CharKind>& rhs); + KBasicString<CharKind, MinSz>& operator+=(const CharKind* rhs); + KBasicString<CharKind, MinSz>& operator+=(const KBasicString<CharKind, MinSz>& rhs); operator const char*() { return fData; } - operator bool() { return fData; } + explicit operator bool() { return fData; } bool operator!() { return fData; } @@ -78,8 +78,8 @@ using KStringOr = ErrorOr<KString>; class KStringBuilder final { public: - template <typename CharKind = Char> - static ErrorOr<KBasicString<CharKind>> Construct(const CharKind* data); + template <typename CharKind = Char, Int MinSz = kMinimumStringSize> + static ErrorOr<KBasicString<CharKind, MinSz>> Construct(const CharKind* data); template <typename CharKind = Char> static const CharKind* FromBool(const CharKind* fmt, bool n); template <typename CharKind = Char> |
