package util type fNumber interface { int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | float32 | float64 } func SumSlice[T any, K fNumber](objs []T, sumFn func(T) K) K { sum := K(0) for _, obj := range objs { sum += sumFn(obj) } return sum }