SliceConvert convert slice to another type slice
(srcS []S, convert func(src S) (D, error))
| 45 | |
| 46 | // SliceConvert convert slice to another type slice |
| 47 | func SliceConvert[S any, D any](srcS []S, convert func(src S) (D, error)) ([]D, error) { |
| 48 | res := make([]D, 0, len(srcS)) |
| 49 | for i := range srcS { |
| 50 | dst, err := convert(srcS[i]) |
| 51 | if err != nil { |
| 52 | return nil, err |
| 53 | } |
| 54 | res = append(res, dst) |
| 55 | } |
| 56 | return res, nil |
| 57 | } |
| 58 | |
| 59 | func MustSliceConvert[S any, D any](srcS []S, convert func(src S) D) []D { |
| 60 | res := make([]D, 0, len(srcS)) |