openmeter / pkg /framework /entutils /mapping.go
Leon4gr45's picture
Upload folder using huggingface_hub (part 9)
fea99b3 verified
Raw
History Blame Contribute Delete
767 Bytes
package entutils
import (
"github.com/samber/lo"
"github.com/openmeterio/openmeter/pkg/pagination"
"github.com/openmeterio/openmeter/pkg/slicesx"
)
func MapPaged[I, O any](paged pagination.Result[I], mapper func(I) O) pagination.Result[O] {
return pagination.Result[O]{
TotalCount: paged.TotalCount,
Items: lo.Map(paged.Items, func(item I, _ int) O {
return mapper(item)
}),
Page: paged.Page,
}
}
func MapPagedWithErr[I, O any](paged pagination.Result[I], mapper func(I) (O, error)) (pagination.Result[O], error) {
items, err := slicesx.MapWithErr(paged.Items, mapper)
if err != nil {
return pagination.Result[O]{}, err
}
return pagination.Result[O]{
TotalCount: paged.TotalCount,
Items: items,
Page: paged.Page,
}, nil
}