dynamo-browse/internal/common/maputils/map.go

34 lines
583 B
Go
Raw Normal View History

package maputils
func Values[K comparable, T any](ts map[K]T) []T {
values := make([]T, 0, len(ts))
for _, v := range ts {
values = append(values, v)
}
return values
}
func MapValues[K comparable, T, U any](ts map[K]T, fn func(t T) U) map[K]U {
us := make(map[K]U)
for k, t := range ts {
us[k] = fn(t)
}
return us
}
func MapValuesWithError[K comparable, T, U any](ts map[K]T, fn func(t T) (U, error)) (map[K]U, error) {
us := make(map[K]U)
for k, t := range ts {
var err error
us[k], err = fn(t)
if err != nil {
return nil, err
}
}
return us, nil
}