// Package groups contains helper functions related to groups package groups // Filter filters out any groups of given that are not in required. Thus it may // happen that the resulting slice is empty. func Filter(given, required []string) []string { groups := []string{} groupFilter := make(map[string]struct{}) for _, group := range required { groupFilter[group] = struct{}{} } for _, group := range given { if _, ok := groupFilter[group]; ok { groups = append(groups, group) } } return groups }