slices/contains.go

23 lines
552 B
Go
Raw Normal View History

2022-08-18 13:41:16 +02:00
package slices
func IndexOf[T comparable](slice []T, value T) int {
return IndexOfCmp(slice, value, DefaultEqualityComparator[T])
}
func IndexOfCmp[T comparable](slice []T, value T, cmp EqualityComparator[T]) int {
for i, v := range slice {
if cmp(v, value) {
return i
}
}
return -1
}
func Contains[T comparable](slice []T, value T) bool {
return ContainsCmp(slice, value, DefaultEqualityComparator[T])
}
func ContainsCmp[T comparable](slice []T, value T, cmp EqualityComparator[T]) bool {
return IndexOfCmp(slice, value, cmp) != -1
}