defmodule CoreUtils.ParsingUtils do alias CoreUtils.Types @spec to_number(String.t(), :integer | :float) :: Types.result(integer() | float(), atom()) def to_number(s, :integer) when is_binary(s) do try do {:ok, String.to_integer(s)} rescue ArgumentError -> {:error, :invalid} end end def to_number(s, :float) when is_binary(s) do try do {:ok, String.to_float(s)} rescue ArgumentError -> {:error, :invalid} end end end