summaryrefslogtreecommitdiffstats
path: root/include/core/Array.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/core/Array.hpp')
-rw-r--r--include/core/Array.hpp37
1 files changed, 36 insertions, 1 deletions
diff --git a/include/core/Array.hpp b/include/core/Array.hpp
index 988d4c7..1261f74 100644
--- a/include/core/Array.hpp
+++ b/include/core/Array.hpp
@@ -3,11 +3,46 @@
#include <gdnative/array.h>
-#include "Defs.hpp"
#include "String.hpp"
namespace godot {
+namespace helpers {
+template <typename T, typename ValueT>
+T append_all(T appendable, ValueT value) {
+ appendable.append(value);
+ return appendable;
+}
+
+template <typename T, typename ValueT, typename... Args>
+T append_all(T appendable, ValueT value, Args... args) {
+ appendable.append(value);
+ return append_all(appendable, args...);
+}
+
+template <typename T>
+T append_all(T appendable) {
+ return appendable;
+}
+
+template <typename KV, typename KeyT, typename ValueT>
+KV add_all(KV kv, KeyT key, ValueT value) {
+ kv[key] = value;
+ return kv;
+}
+
+template <typename KV, typename KeyT, typename ValueT, typename... Args>
+KV add_all(KV kv, KeyT key, ValueT value, Args... args) {
+ kv[key] = value;
+ return add_all(kv, args...);
+}
+
+template <typename KV>
+KV add_all(KV kv) {
+ return kv;
+}
+} // namespace helpers
+
class Variant;
class PoolByteArray;
class PoolIntArray;