v0
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
package utils
|
||||
|
||||
import "fmt"
|
||||
|
||||
func SliceIndexOf[T any](
|
||||
s []T,
|
||||
fn func(T) bool,
|
||||
) (int, error) {
|
||||
for i, el := range s {
|
||||
if fn(el) {
|
||||
return i, nil
|
||||
}
|
||||
}
|
||||
|
||||
return -1, fmt.Errorf("failed to find a matching element")
|
||||
}
|
||||
|
||||
func SliceContains[T comparable](s []T, el T) bool {
|
||||
for _, element := range s {
|
||||
if element == el {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
|
||||
func SliceContainsCustom[T comparable](s []T, fn func(el T) bool) bool {
|
||||
for _, el := range s {
|
||||
if fn(el) {
|
||||
return true
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
Reference in New Issue
Block a user