Box.Ecto.Pagination.Page (box v0.15.1)

View Source

Summary

Functions

Maps invdividual result over

Maps results over

Merges two pages together using a merge function.

Creates a new page from another page and some results

Types

query()

@type query() :: Ecto.Queryable.t()

result()

@type result() :: any()

sort_by()

@type sort_by() :: function() | {:asc | :desc, atom()} | atom()

t()

@type t() :: %Box.Ecto.Pagination.Page{
  has_next_page: boolean(),
  index: term(),
  limit: non_neg_integer(),
  offset: non_neg_integer(),
  query: query(),
  results: [result()],
  sort_by: sort_by()
}

Functions

map_every_results(page, function)

@spec map_every_results(t(), (any() -> any())) :: t()

Maps invdividual result over

map_results(page, function)

@spec map_results(t(), ([any()] -> [any()])) :: t()

Maps results over

merge(page, right, merge_function \\ &Kernel.++/2)

@spec merge(t(), t(), ([result()], [result()] -> any())) :: t()

Merges two pages together using a merge function.

new(results, page)

@spec new([result()], t()) :: t()

Creates a new page from another page and some results

new(results, query, limit, offset, sort_by)

@spec new([result()], query(), non_neg_integer(), non_neg_integer(), sort_by()) :: t()

Creates a new page