diff options
author | Markus Wüstenberg | 2022-09-22 09:41:06 +0200 |
---|---|---|
committer | GitHub | 2022-09-22 09:41:06 +0200 |
commit | f387a7123040d9414350bf783bdeff17ac0572c7 (patch) | |
tree | 89859a54e3cd6bf3e6169c384529af98aeee4dc5 /gomponents_generic.go | |
parent | 3334d6c7d049cec57ad36f9d5cb0d491faf54a5d (diff) | |
download | gomponents-f387a7123040d9414350bf783bdeff17ac0572c7.tar.lz gomponents-f387a7123040d9414350bf783bdeff17ac0572c7.tar.zst gomponents-f387a7123040d9414350bf783bdeff17ac0572c7.zip |
Add generic Map implementation (#108)
Instead of waiting for a good time to switch the `Map` implementation, I've decided to just offer two implementations: one for Go versions before 1.18, and one for 1.18 and onwards. This is achieved using build tags in the source files. This is obviously a breaking change for consumers of this library that use Go 1.18 and onwards. See #88
Diffstat (limited to 'gomponents_generic.go')
-rw-r--r-- | gomponents_generic.go | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/gomponents_generic.go b/gomponents_generic.go new file mode 100644 index 0000000..6e6500b --- /dev/null +++ b/gomponents_generic.go @@ -0,0 +1,13 @@ +//go:build go1.18 +// +build go1.18 + +package gomponents + +// Map a slice of anything to a slice of Nodes. +func Map[T any](ts []T, cb func(T) Node) []Node { + var nodes []Node + for _, t := range ts { + nodes = append(nodes, cb(t)) + } + return nodes +} |