aboutsummaryrefslogtreecommitdiff
path: root/core/src/Model/Workflow/Values/Dictionary.hpp
diff options
context:
space:
mode:
authorrtk0c <[email protected]>2021-06-03 12:17:46 -0700
committerrtk0c <[email protected]>2021-06-03 12:17:46 -0700
commitbeb1f3969e13af72bd9098d484b693e397cf7235 (patch)
tree32f5e15393116a487b59b8dd7f4dbc7e5e6ddc59 /core/src/Model/Workflow/Values/Dictionary.hpp
parentaca69f01a9cf4e8a12fe8d67882c05a1131e21b6 (diff)
Dictionary value (string key)
Diffstat (limited to 'core/src/Model/Workflow/Values/Dictionary.hpp')
-rw-r--r--core/src/Model/Workflow/Values/Dictionary.hpp25
1 files changed, 25 insertions, 0 deletions
diff --git a/core/src/Model/Workflow/Values/Dictionary.hpp b/core/src/Model/Workflow/Values/Dictionary.hpp
new file mode 100644
index 0000000..65ea82f
--- /dev/null
+++ b/core/src/Model/Workflow/Values/Dictionary.hpp
@@ -0,0 +1,25 @@
+#pragma once
+
+#include "Model/Workflow/Value.hpp"
+
+#include <tsl/array_map.h>
+#include <memory>
+#include <string>
+#include <string_view>
+
+class DictionaryValue : public BaseValue
+{
+private:
+ tsl::array_map<char, std::unique_ptr<BaseValue>> mElements;
+
+public:
+ static bool IsInstance(const BaseValue* value);
+ DictionaryValue();
+
+ int GetCount() const;
+ BaseValue* Find(std::string_view key);
+
+ BaseValue* Insert(std::string_view key, std::unique_ptr<BaseValue>& value);
+ BaseValue& InsertOrReplace(std::string_view key, std::unique_ptr<BaseValue> value);
+ void Remove(std::string_view key);
+};