diff options
| author | Amlal El Mahrouss <amlal@nekernel.org> | 2025-11-21 09:09:33 +0100 |
|---|---|---|
| committer | Amlal El Mahrouss <amlal@nekernel.org> | 2025-11-21 09:25:16 +0100 |
| commit | 463e7472e737fb8259a30304e729772041ea5498 (patch) | |
| tree | 0cd4aee9d7d0eea2d5279f76bf37fd6887fbc65d /dev/kernel/NeKit/Variant.h | |
| parent | c464e5800961c809c73d4180f8a66885b53c63d7 (diff) | |
feat: kernel: NeKit improvements and new TOML file.
feat: frameworks: CoreFoundation improvements and new KTest framework.
Signed-off-by: Amlal El Mahrouss <amlal@nekernel.org>
Diffstat (limited to 'dev/kernel/NeKit/Variant.h')
| -rw-r--r-- | dev/kernel/NeKit/Variant.h | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/dev/kernel/NeKit/Variant.h b/dev/kernel/NeKit/Variant.h index 42a47bc0..7bcd0dff 100644 --- a/dev/kernel/NeKit/Variant.h +++ b/dev/kernel/NeKit/Variant.h @@ -8,6 +8,7 @@ #include <NeKit/Defines.h> #include <NeKit/Json.h> +#include <NeKit/TOML.h> #include <NeKit/KString.h> #include <SwapKit/DiskSwap.h> @@ -15,13 +16,13 @@ namespace Kernel { class Variant final { public: enum class VariantKind { - kString, + kInvalid = 0, + kString = 200, kBlob, kNull, kJson, - kXML, + kTOML, kSwap, - kInvalid, }; public: @@ -37,7 +38,9 @@ class Variant final { explicit Variant(KBasicString<CharKind>* stringView) : fPtr((VoidPtr) stringView), fKind(VariantKind::kString) {} - explicit Variant(JsonObject* json) : fPtr((VoidPtr) json), fKind(VariantKind::kJson) {} + explicit Variant(JsonObject<>* json) : fPtr((VoidPtr) json), fKind(VariantKind::kJson) {} + + explicit Variant(TOMLObject* toml) : fPtr((VoidPtr) toml), fKind(VariantKind::kTOML) {} explicit Variant(nullPtr ptr) : fPtr(ptr), fKind(VariantKind::kNull) {} @@ -47,10 +50,15 @@ class Variant final { public: const Char* ToString(); + + /// ======================================================================== + /// @brief Returns the underlying pointer. + /// @return the underlying pointer. + /// ======================================================================== VoidPtr Leak(); template <typename T> - T* As() { + T* As() noexcept { return reinterpret_cast<T*>(fPtr); } |
