zrepl/pruning/keep_helpers.go

29 lines
607 B
Go
Raw Normal View History

package pruning
func filterSnapList(snaps []Snapshot, predicate func(Snapshot) bool) []Snapshot {
r := make([]Snapshot, 0, len(snaps))
for i := range snaps {
if predicate(snaps[i]) {
r = append(r, snaps[i])
}
}
return r
}
func partitionSnapList(snaps []Snapshot, predicate func(Snapshot) bool) (sTrue, sFalse []Snapshot) {
for i := range snaps {
if predicate(snaps[i]) {
sTrue = append(sTrue, snaps[i])
} else {
sFalse = append(sFalse, snaps[i])
}
}
return
}
func shallowCopySnapList(snaps []Snapshot) []Snapshot {
c := make([]Snapshot, len(snaps))
copy(c, snaps)
return c
}