package slices func Of[T any](values ...T) []T { return values } // OfMap returns a slice containing the return values of the unmapper function // applied to any key-value pair in m // The order is random func OfMap[K comparable, V, T any](m map[K]V, unmapper func(K, V) T) []T { out := make([]T, 0, len(m)) for k, v := range m { out = append(out, unmapper(k, v)) } return out } // UnmapKey is an unmapper function which returns the map key only // and discards its value. It is supposed to be used with OfMap func UnmapKey[K comparable, V any](key K, _ V) K { return key } // UnmapValue is an unmapper function which returns the map value only // and discards its key. It is supposed to be used with OfMap func UnmapValue[K comparable, V any](_ K, value V) V { return value }