summaryrefslogtreecommitdiffhomepage
path: root/src/kernel/src/Variant.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/kernel/src/Variant.cc')
-rw-r--r--src/kernel/src/Variant.cc38
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