diff options
Diffstat (limited to 'src/kernel/src/Variant.cc')
| -rw-r--r-- | src/kernel/src/Variant.cc | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/kernel/src/Variant.cc b/src/kernel/src/Variant.cc new file mode 100644 index 00000000..fcf2f443 --- /dev/null +++ b/src/kernel/src/Variant.cc @@ -0,0 +1,38 @@ +/* ======================================== + + Copyright (C) 2024-2025, Amlal El Mahrouss, licensed under the Apache 2.0 license. + +======================================== */ + +#include <NeKit/Variant.h> + +namespace Kernel { +const Char* Variant::ToString() { + switch (fKind) { + case VariantKind::kTOML: + return ("Class:{TOML}"); + case VariantKind::kJson: + return ("Class:{Json}"); + case VariantKind::kString: + return ("Class:{String}"); + case VariantKind::kBlob: + return ("Class:{Blob}"); + case VariantKind::kNull: + return ("Class:{Null}"); + case VariantKind::kSwap: + return ("Class:{Swap}"); + default: + return ("Class:{Unknown}"); + } +} + +/// @brief Return variant's kind. +Variant::VariantKind& Variant::Kind() { + return this->fKind; +} + +/// @brief Leak variant's instance. +VoidPtr Variant::Leak() { + return this->fPtr; +} +} // namespace Kernel |
