summaryrefslogtreecommitdiffhomepage
path: root/src/kernel/NeKit/KString.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-12-02 15:57:26 -0500
committerAmlal El Mahrouss <amlal@nekernel.org>2025-12-02 15:57:26 -0500
commit825b4f09ca6f551551c4f3be5d72517eab504860 (patch)
tree8f53fef512789b75c6ee80d3b240a635c071fa22 /src/kernel/NeKit/KString.h
parent28eafc395f1e6e2cb195403f28f896ad00984746 (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.h20
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>