lib/kvasir/type/float.ex
defmodule Kvasir.Type.Float do
@moduledoc ~S"""
"""
use Kvasir.Type
@impl Kvasir.Type
def parse(number, opts \\ [])
def parse(number, _opts) when is_float(number), do: {:ok, number}
def parse(number, opts) when is_binary(number) do
case Float.parse(number) do
{number, ""} -> parse(number, opts)
_ -> {:error, :invalid_float}
end
end
def parse(_, _opts), do: {:error, :invalid_float}
end