code: func InvalidType(name, in, typeName string, value interface{}) *Validation {
  	var message string
  
  	if in != "" {
  		switch value.(type) {
  		case string:
  			message = fmt.Sprintf(typeFailWithData, name, in, typeName, value)
  		case error:
  			message = fmt.Sprintf(typeFailWithError, name, in, typeName, value)
  		default:
  			message = fmt.Sprintf(typeFail, name, in, typeName)
  		}
  	} else {
  		switch value.(type) {
  		case string:
  			message = fmt.Sprintf(typeFailWithDataNoIn, name, typeName, value)
  		case error:
  			message = fmt.Sprintf(typeFailWithErrorNoIn, name, typeName, value)
  		default:
  			message = fmt.Sprintf(typeFailNoIn, name, typeName)
  		}
  	}
  
  	return &Validation{
  		code:    InvalidTypeCode,
  		Name:    name,
  		In:      in,
  		Value:   value,
  		message: message,
  	}
  
  }
docs: // InvalidType creates an error for when the type is invalid