From 0592add8ca146edb577bff06eb483fc080ea5e7d Mon Sep 17 00:00:00 2001 From: milarin Date: Sat, 25 Mar 2023 08:52:08 +0100 Subject: [PATCH] MapError implemented --- map.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/map.go b/map.go index a364ec1..e99d1de 100644 --- a/map.go +++ b/map.go @@ -7,3 +7,15 @@ func Map[I, O any](slice []I, mapper func(I) O) []O { } return ret } + +func MapError[I, O any](slice []I, mapper func(I) (O, error)) ([]O, error) { + ret := make([]O, 0, len(slice)) + for _, old := range slice { + new, err := mapper(old) + if err != nil { + return nil, err + } + ret = append(ret, new) + } + return ret, nil +}