homebox/backend/internal/data/repo/id_set.go
Hayden cd82fe0d89
refactor: remove empty services (#116)
* remove empty services

* remove old factory

* remove old static files

* cleanup more duplicate service code

* file/folder reorg
2022-10-29 20:05:38 -08:00

21 lines
531 B
Go

package repo
import (
"github.com/google/uuid"
"github.com/hay-kot/homebox/backend/pkgs/set"
)
// HasID is an interface to entities that have an ID uuid.UUID field and a GetID() method.
// This interface is fulfilled by all entities generated by entgo.io/ent via a custom template
type HasID interface {
GetID() uuid.UUID
}
func newIDSet[T HasID](entities []T) set.Set[uuid.UUID] {
uuids := make([]uuid.UUID, 0, len(entities))
for _, e := range entities {
uuids = append(uuids, e.GetID())
}
return set.New(uuids...)
}