lib/map_sorter/sort_spec.ex
defmodule MapSorter.SortSpec do
@moduledoc """
Defines the `sort spec` types.
"""
# :dob | [:birth, :date]
@type key :: Map.key() | [Map.key()]
# For ascending or descending order...
@type sort_dir :: :asc | :desc
# :dob | {:dob, Date} | {:desc, :dob} | {:desc, {:dob, Date}}
@type t :: key | {key, module} | {sort_dir, key} | {sort_dir, {key, module}}
end