Current section
Files
Jump to
Current section
Files
lib/is_what.ex
defmodule IsWhat do
@moduledoc """
Documentation for `IsWhat`.
"""
@doc """
is_what?/1
Defines the type of the given data.
## Examples
iex> IsWhat.is_what?(true)
"true is boolean."
"""
@spec is_what?(any()) :: String.t()
def is_what?(nil), do: "data is nil."
def is_what?(data) when is_binary(data), do: "#{data} is binary."
def is_what?(data) when is_boolean(data), do: "#{data} is boolean."
def is_what?(data) when is_atom(data), do: "#{data} is atom."
def is_what?(data) when is_tuple(data), do: "#{inspect(data)} is tuple."
def is_what?(data) when is_list(data), do: "#{inspect(data)} is list."
def is_what?(data) when is_map(data), do: "#{inspect(data)} is map."
def is_what?(data) when is_integer(data), do: "#{data} is integer."
def is_what?(data) when is_number(data), do: "#{data} is number."
def is_what?(data) when is_struct(data), do: "#{data} is struct."
end