modash/momap/toslice.go
Leon Mika a20530ddfd Initial commit of modash
This was taken from github.com/lmika/gopkgs/fp
2025-01-27 13:19:52 +11:00

30 lines
512 B
Go

package momap
func ToSlice[K comparable, V, T any](m map[K]V, fn func(k K, v V) T) []T {
if m == nil {
return nil
}
ts := make([]T, 0, len(m))
for k, v := range m {
ts = append(ts, fn(k, v))
}
return ts
}
func ToSliceWithError[K comparable, V, T any](m map[K]V, fn func(k K, v V) (T, error)) ([]T, error) {
if m == nil {
return nil, nil
}
ts := make([]T, 0, len(m))
for k, v := range m {
w, err := fn(k, v)
if err != nil {
return nil, err
}
ts = append(ts, w)
}
return ts, nil
}