in validator.go [405:447]
func validateNonEmptyWithAllowNil(v interface{}, _ string, allowNil bool) error {
if s, ok := v.(string); ok {
if s == "" {
return ErrStringEmpty
}
return nil
}
if r, ok := v.(regexp.Regexp); ok {
if r.String() == "" {
return ErrRegexEmpty
}
return nil
}
val := reflect.ValueOf(v)
if val.Kind() == reflect.Array || val.Kind() == reflect.Slice {
if val.IsNil() {
if allowNil {
return nil
}
return ErrRequired
}
if val.Len() == 0 {
return ErrArrayEmpty
}
return nil
}
if val.Kind() == reflect.Map {
if val.IsNil() {
if allowNil {
return nil
}
return ErrRequired
}
if val.Len() == 0 {
return ErrMapEmpty
}
return nil
}
return nil
}