lib/types/bool.ex
defmodule DryValidation.Types.Bool do
@moduledoc """
Represents a boolean type.
Will cast the strings "true" and "false" into real boolean values.
```
DryValidation.schema do
required :admin, Types.Bool
end
```
"""
@doc false
def cast(value) when is_boolean(value), do: value
def cast("true"), do: true
def cast("false"), do: false
def cast(value), do: value
@doc false
def valid?(value) when is_boolean(value), do: true
def valid?(_value), do: false
end