in validator.go [249:276]
func validatePositive(v interface{}, _ string) error {
if v == nil {
return nil
}
if d, ok := v.(time.Duration); ok {
if d < 0 {
return ErrNegative
}
return nil
}
val := reflect.ValueOf(v)
switch val.Kind() {
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
if val.Int() >= 0 {
return nil
}
case reflect.Float32, reflect.Float64:
if val.Float() >= 0 {
return nil
}
default:
return nil
}
return ErrNegative
}