MCPcopy Create free account
hub / github.com/rilldata/rill / dedupeAndSortResourceNames

Function dedupeAndSortResourceNames

admin/database/postgres/postgres.go:4119–4140  ·  view source on GitHub ↗

dedupeAndSortResourceNames deduplicates and sorts a slice of ResourceName

(resources []database.ResourceName)

Source from the content-addressed store, hash-verified

4117
4118// dedupeAndSortResourceNames deduplicates and sorts a slice of ResourceName
4119func 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}

Callers 1

marshalResourceNamesFunction · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected