Packages

A series of macros, and utilities to help hadling your elixir tonics.

Current section

Files

Jump to
rubbergloves lib validation validation.ex
Raw

lib/validation/validation.ex

defprotocol Rubbergloves.Validation do
alias Rubbergloves.Errors.Validation.ValidationError
@fallback_to_any true
@spec valid?(any) :: Boolean.t
def valid?(validation)
@spec errors(any) :: ValidationError | []
def errors(validation)
end
defimpl Rubbergloves.Validation, for: Any do
alias Rubbergloves.Errors.Validation.ValidationError
def valid?(:ok), do: true
def valid?(:invalid_type), do: false
def errors(:ok), do: []
def errors(:invalid_type), do: %ValidationError{ errors: [{:type, "Invalid type"}]}
end