View Source MapSorter.SortSpec (Map Sorter v0.2.66)

Defines sort spec types and generates square brackets access syntax strings.

Summary

Types

Sort spec key

Sort direction

t()

Sort spec

Functions

Generates a square brackets access syntax string from a sort spec key.

Types

@type key() :: Map.key() | [Map.key()]

Sort spec key

@type sort_dir() :: :asc | :desc

Sort direction

@type t() ::
  key()
  | {key(), module()}
  | {sort_dir(), key()}
  | {sort_dir(), {key(), module()}}

Sort spec

Functions

@spec brackets(key()) :: String.t()

Generates a square brackets access syntax string from a sort spec key.

Examples

iex> import MapSorter.SortSpec, only: [brackets: 1]
iex> brackets([:birth, :date])
"[:birth][:date]"

iex> import MapSorter.SortSpec, only: [brackets: 1]
iex> brackets([:address, CITY, :state])
~s<[:address][CITY][:state]>

iex> import MapSorter.SortSpec, only: [brackets: 1]
iex> brackets([:dob])
"[:dob]"

iex> import MapSorter.SortSpec, only: [brackets: 1]
iex> brackets(:dob)
"[:dob]"

iex> import MapSorter.SortSpec, only: [brackets: 1]
iex> brackets(DOB)
"[DOB]"

iex> import MapSorter.SortSpec, only: [brackets: 1]
iex> brackets([1, <<1, 2, 3>>, 3.14, DOB])
~s{[1][<<1, 2, 3>>][3.14][DOB]}

iex> import MapSorter.SortSpec, only: [brackets: 1]
iex> brackets([DOB, "3.14", 3.14, 0, {1, 2}, :likes])
~s<[DOB]["3.14"][3.14][0][{1, 2}][:likes]>