diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-12-02 16:12:12 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-12-02 16:12:12 -0500 |
| commit | b0a41001efe099f0c0bb9d16d64a81f7425edc8c (patch) | |
| tree | 8f53fef512789b75c6ee80d3b240a635c071fa22 /src/kernel/NeKit/KString.h | |
| parent | 14180e1e4e94da21a355aa9dd7cbc5f1ac2f713c (diff) | |
| parent | 825b4f09ca6f551551c4f3be5d72517eab504860 (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.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> |
