in validator.go [278:326]
func validateMin(v interface{}, param string) error {
if v == nil {
return nil
}
if d, ok := v.(time.Duration); ok {
min, err := param2Duration(param)
if err != nil {
return err
}
if min > d {
return fmt.Errorf("requires duration >= %v", param)
}
return nil
}
val := reflect.ValueOf(v)
switch val.Kind() {
case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
min, err := strconv.ParseInt(param, 0, 64)
if err != nil {
return err
}
if val.Int() >= min {
return nil
}
case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64:
min, err := strconv.ParseUint(param, 0, 64)
if err != nil {
return err
}
if val.Uint() >= min {
return nil
}
case reflect.Float32, reflect.Float64:
min, err := strconv.ParseFloat(param, 64)
if err != nil {
return err
}
if val.Float() >= min {
return nil
}
default:
return nil
}
return fmt.Errorf("requires value >= %v", param)
}