diff options
| author | Amlal <amlal@zka.com> | 2024-07-14 00:37:06 +0200 |
|---|---|---|
| committer | Amlal <amlal@zka.com> | 2024-07-14 00:37:06 +0200 |
| commit | b038c3eff8c80be2e6e10bea16634523fff4a6b5 (patch) | |
| tree | d4c9b5c1931d6e5029243446b66e8edb608072b8 /Kernel/NewKit/Variant.hpp | |
| parent | 062ba0a060929c18a2734835cd426e3d808093b7 (diff) | |
[IMP]
- IsUndefined returns const bool& now.
- Replace kUndefined with kNull now.
- Remove ML_ from macros in newstd.hxx.
- Rename NSyscall to NSyscallInterface, which is a ref counted class now.
- Rename MBCIType to PowerID
- Update ToDos.
- Update NewFS root catalog name.
- Fix JSON 'null' initialization.
- Add Json to variant object.
- Replace kPointer with kBlob in variant kinds.
- Add Leak() method to variant.
Signed-off-by: Amlal <amlal@zka.com>
Diffstat (limited to 'Kernel/NewKit/Variant.hpp')
| -rw-r--r-- | Kernel/NewKit/Variant.hpp | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/Kernel/NewKit/Variant.hpp b/Kernel/NewKit/Variant.hpp index 27cd29cc..c118eda1 100644 --- a/Kernel/NewKit/Variant.hpp +++ b/Kernel/NewKit/Variant.hpp @@ -8,6 +8,7 @@ #include <NewKit/Defines.hpp> #include <NewKit/String.hpp> +#include <NewKit/Json.hxx> namespace Kernel { @@ -17,8 +18,9 @@ namespace Kernel enum class VariantKind { kString, - kPointer, - kUndefined + kBlob, + kNull, + kJson, }; public: @@ -35,20 +37,28 @@ namespace Kernel : fPtr((voidPtr)stringView), fKind(VariantKind::kString) { } + + explicit Variant(JsonType* json) + : fPtr((voidPtr)json), fKind(VariantKind::kJson) + { + } + explicit Variant(nullPtr) - : fPtr(nullptr), fKind(VariantKind::kUndefined) + : fPtr(nullptr), fKind(VariantKind::kNull) { } + explicit Variant(voidPtr ptr) - : fPtr(ptr), fKind(VariantKind::kPointer) + : fPtr(ptr), fKind(VariantKind::kBlob) { } public: const Char* ToString(); + VoidPtr Leak(); private: voidPtr fPtr{nullptr}; - VariantKind fKind{VariantKind::kUndefined}; + VariantKind fKind{VariantKind::kNull}; }; } // namespace Kernel |
