dedupeAndSortResourceNames deduplicates and sorts a slice of ResourceName
(resources []database.ResourceName)
| 4117 | |
| 4118 | // dedupeAndSortResourceNames deduplicates and sorts a slice of ResourceName |
| 4119 | func dedupeAndSortResourceNames(resources []database.ResourceName) []database.ResourceName { |
| 4120 | seen := make(map[database.ResourceName]struct{}) |
| 4121 | var deduped []database.ResourceName |
| 4122 | for _, r := range resources { |
| 4123 | if r.Type == "" || r.Name == "" { |
| 4124 | continue |
| 4125 | } |
| 4126 | if _, ok := seen[r]; !ok { |
| 4127 | seen[r] = struct{}{} |
| 4128 | deduped = append(deduped, r) |
| 4129 | } |
| 4130 | } |
| 4131 | |
| 4132 | sort.Slice(deduped, func(i, j int) bool { |
| 4133 | if deduped[i].Type == deduped[j].Type { |
| 4134 | return deduped[i].Name < deduped[j].Name |
| 4135 | } |
| 4136 | return deduped[i].Type < deduped[j].Type |
| 4137 | }) |
| 4138 | |
| 4139 | return deduped |
| 4140 | } |
no outgoing calls
no test coverage detected