summaryrefslogtreecommitdiffhomepage
path: root/dev/kernel/src/Variant.cc
diff options
context:
space:
mode:
Diffstat (limited to 'dev/kernel/src/Variant.cc')
-rw-r--r--dev/kernel/src/Variant.cc41
1 files changed, 41 insertions, 0 deletions
diff --git a/dev/kernel/src/Variant.cc b/dev/kernel/src/Variant.cc
new file mode 100644
index 00000000..cfa29d3a
--- /dev/null
+++ b/dev/kernel/src/Variant.cc
@@ -0,0 +1,41 @@
+/* -------------------------------------------
+
+ Copyright (C) 2024-2025, Amlal EL Mahrouss, all rights reserved.
+
+------------------------------------------- */
+
+#include <NewKit/Variant.h>
+
+namespace NeOS
+{
+ const Char* Variant::ToString()
+ {
+ switch (fKind)
+ {
+ case VariantKind::kXML:
+ return ("Class:{XML}");
+ case VariantKind::kJson:
+ return ("Class:{Json}");
+ case VariantKind::kString:
+ return ("Class:{String}");
+ case VariantKind::kBlob:
+ return ("Class:{Blob}");
+ case VariantKind::kNull:
+ return ("Class:{Null}");
+ 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 NeOS