logfrog-go/utils.go

32 lines
597 B
Go

package logfrog
import (
"reflect"
"golang.org/x/exp/slices"
)
func indexOf[T interface{}](s []T, v T) int {
for idx, val := range s {
if reflect.ValueOf(val) == reflect.ValueOf(v) {
return idx
}
}
return -1
}
func deleteFrom[T interface{}](s []T, v T) []T {
idx := indexOf(s, v)
if idx < 0 {
return s
}
return slices.Delete(s, idx, idx+1)
}
func deleteFromWithFlag[T interface{}](s []T, v T) ([]T, bool) {
idx := indexOf(s, v)
if idx < 0 {
return s, false
}
return slices.Delete(s, idx, idx+1), true
}