about summary refs log tree commit diff
path: root/util/util.go
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@gmail.com>2017-02-10T19·52+0100
committerVincent Ambo <tazjin@gmail.com>2017-02-14T18·12+0100
commit7a930aad113703ae3a829bbc1253d218c89f1f20 (patch)
treebbab375c5b7e900d7d55b1296a8c8b66238c3caf /util/util.go
parentc181decd9d6584ecd7b5d5596f25f7739442a328 (diff)
feat util: Add silly map-merge function that should be in the stdlib
Diffstat (limited to 'util/util.go')
-rw-r--r--util/util.go25
1 files changed, 25 insertions, 0 deletions
diff --git a/util/util.go b/util/util.go
new file mode 100644
index 0000000000..3d05322efb
--- /dev/null
+++ b/util/util.go
@@ -0,0 +1,25 @@
+package util
+
+// Merges two maps together. Values from the second map override values in the first map.
+// The returned map is new if anything was changed.
+func Merge(in1 *map[string]interface{}, in2 *map[string]interface{}) *map[string]interface{} {
+	if in1 == nil || len(*in1) == 0 {
+		return in2
+	}
+
+	if in2 == nil || len(*in2) == 0 {
+		return in1
+	}
+
+
+	new := make(map[string]interface{})
+	for k, v := range *in1 {
+		new[k] = v
+	}
+
+	for k, v := range *in2 {
+		new[k] = v
+	}
+
+	return &new
+}