Files

41 lines
688 B
Go

package version
// List is a slice of versions that implements sort.Interface.
type List []*Version
// Match tests versions against a constraint and returns a new List of matching versions only.
func (list List) Match(constraints ...*Constraint) List {
filtered := List{}
for _, v := range list {
ok := true
for _, c := range constraints {
if !v.Match(c) {
ok = false
break
}
}
if ok {
filtered = append(filtered, v)
}
}
return filtered
}
func (list List) Len() int {
return len(list)
}
func (list List) Less(i, j int) bool {
return list[i].Less(list[j])
}
func (list List) Swap(i, j int) {
a := list[i]
b := list[j]
list[i] = b
list[j] = a
}