Files
path/slice.go

28 lines
417 B
Go
Raw Permalink Normal View History

2023-04-20 18:01:36 +00:00
package path
import "reflect"
func isSlice(v any) bool {
return reflect.TypeOf(v).Kind() == reflect.Slice
}
func anyTrue(v any, cb func(any, int) bool) bool {
val := reflect.ValueOf(v)
for i := 0; i < val.Len(); i++ {
sub := val.Index(i)
if sub.Kind() == reflect.Pointer && sub.IsNil() {
continue
}
sub = reflect.Indirect(sub)
if cb(sub.Interface(), i) {
return true
}
}
return false
}