package utils // Unique returns a new slice containing only the unique elements of the input slice, // preserving their original order. func Unique[T comparable](slice []T) []T { if slice == nil { return nil } seen := make(map[T]struct{}) result := make([]T, 0) for _, item := range slice { if _, ok := seen[item]; ok { continue } seen[item] = struct{}{} result = append(result, item) } return result }