Files
bkl/without_go1_21.go
2023-07-09 14:01:28 -07:00

32 lines
475 B
Go

//go:build !go1.21
package bkl
// Copied from go1.21 slices
func slicesDeleteFunc[S ~[]E, E any](s S, del func(E) bool) S { //nolint:ireturn
for i, v := range s {
if del(v) {
j := i
for i++; i < len(s); i++ {
v = s[i]
if !del(v) {
s[j] = v
j++
}
}
return s[:j]
}
}
return s
}
// Copied from go1.21 slices
func slicesReverse[S ~[]E, E any](s S) {
for i, j := 0, len(s)-1; i < j; i, j = i+1, j-1 {
s[i], s[j] = s[j], s[i]
}
}