Current section

Files

Jump to
parameter lib parameter types integer.ex
Raw

lib/parameter/types/integer.ex

defmodule Parameter.Types.Integer do
@moduledoc """
Integer parameter type
"""
use Parameter.Parametrizable
@impl true
def load(value) when is_integer(value) do
{:ok, value}
end
def load(value) when is_binary(value) do
case Integer.parse(value) do
{integer, ""} -> {:ok, integer}
_error -> error_tuple()
end
end
def load(_value) do
error_tuple()
end
@impl true
def validate(value) when is_integer(value) do
:ok
end
def validate(_value) do
error_tuple()
end
defp error_tuple, do: {:error, "invalid integer type"}
end