github.com/kyleu/dbaudit@v0.0.2-0.20240321155047-ff2f2c940496/app/lib/schema/model/models.go (about) 1 // Package model - Content managed by Project Forge, see [projectforge.md] for details. 2 package model 3 4 import ( 5 "cmp" 6 "slices" 7 8 "github.com/samber/lo" 9 10 "github.com/kyleu/dbaudit/app/util" 11 ) 12 13 type Models []*Model 14 15 func (m Models) Get(pkg util.Pkg, key string) *Model { 16 return lo.FindOrElse(m, nil, func(x *Model) bool { 17 return x.Pkg.Equals(pkg) && x.Key == key 18 }) 19 } 20 21 func (m Models) Sort() { 22 slices.SortFunc(m, func(l *Model, r *Model) int { 23 return cmp.Compare(l.Key, r.Key) 24 }) 25 } 26 27 func (m Models) Names() []string { 28 return lo.Map(m, func(x *Model, _ int) string { 29 return x.Key 30 }) 31 }