defmodule Moar.Integer do # @related [test](/test/integer_test.exs) @moduledoc "Integer-related functions." @doc """ Compares two integers, returning `:lt`, `:eq`, or `:gt`. ``` iex> Moar.Integer.compare(1, 3) :lt iex> Moar.Integer.compare(1, -3) :gt iex> Moar.Integer.compare(-1, -1) :eq iex> Enum.sort([5, 6, 0, -1], Moar.Integer) [-1, 0, 5, 6] ``` """ @spec compare(integer(), integer()) :: :lt | :eg | :gt def compare(left, right) when is_integer(left) and is_integer(right) do cond do left > right -> :gt left < right -> :lt true -> :eq end end end