hue hue hue

This commit is contained in:
2022-08-28 21:39:36 +02:00
parent d1f42d932b
commit e00fe2a4d2
16 changed files with 1300 additions and 77 deletions
+16
View File
@@ -0,0 +1,16 @@
package gentools
func CopyMap[K comparable, V any](m map[K]V) map[K]V {
m2 := make(map[K]V, len(m))
for k, v := range m {
m2[k] = v
}
return m2
}
func OneItemMap[K comparable, V any](key K, value V) map[K]V {
m := make(map[K]V, 1)
m[key] = value
return m
}
+10
View File
@@ -5,6 +5,16 @@ func Ptr[T any](t T) *T {
}
func ShallowCopy[T any](t *T) *T {
if t == nil {
return t
}
tCopy := *t
return &tCopy
}
func ShallowCopyTo[T any](dst **T, src *T) {
if src != nil {
*dst = ShallowCopy(src)
}
}
+18
View File
@@ -22,3 +22,21 @@ Outer:
*arr = append(*arr, v)
}
}
func Map[T any, U any](arr []T, cb func(T) U) []U {
arr2 := make([]U, len(arr))
for i, v := range arr {
arr2[i] = cb(v)
}
return arr2
}
func Flatten[T any](arr [][]T) []T {
arr2 := make([]T, 0, 128)
for _, sub := range arr {
arr2 = sub
}
return arr2
}