Files
pmomusic/upnp/objectstore/objectset.go
2025-08-01 12:45:42 +02:00

30 lines
439 B
Go

package objectstore
import "iter"
type Object interface {
Name() string
TypeID() string
}
type ObjectSet[T Object] map[string]T
func (m *ObjectSet[T]) Insert(obj T) {
(*m)[obj.Name()] = obj
}
func (set *ObjectSet[T]) Contains(obj T) bool {
_, ok := (*set)[obj.Name()]
return ok
}
func (m *ObjectSet[T]) All() iter.Seq[T] {
return func(yield func(T) bool) {
for _, sv := range *m {
if !yield(sv) {
return
}
}
}
}