summaryrefslogtreecommitdiffhomepage
path: root/src/kernel/NeKit/KString.h
diff options
context:
space:
mode:
authorAmlal El Mahrouss <amlal@nekernel.org>2025-12-02 16:12:12 -0500
committerGitHub <noreply@github.com>2025-12-02 16:12:12 -0500
commitb0a41001efe099f0c0bb9d16d64a81f7425edc8c (patch)
tree8f53fef512789b75c6ee80d3b240a635c071fa22 /src/kernel/NeKit/KString.h
parent14180e1e4e94da21a355aa9dd7cbc5f1ac2f713c (diff)
parent825b4f09ca6f551551c4f3be5d72517eab504860 (diff)
Merge pull request #101 from nekernel-org/develop
chore: new Kernel APIs.
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>