lib/quarto/page/metadata.ex

defmodule Quarto.Page.Metadata do
  @moduledoc """
  Defines page metadata.
  ## Fields
  * `after` - an opaque cursor representing the last row of the current page.
  * `before` - an opaque cursor representing the first row of the current page.
  * `limit` - the maximum number of entries that can be contained in this page.
  * `total_count` - the total number of entries matching the query.
  * `total_count_cap_exceeded` - a boolean indicating whether the `:total_count_limit`
  was exceeded.
  """

  @type opaque_cursor :: String.t()

  @type t :: %__MODULE__{
          after: opaque_cursor(),
          before: opaque_cursor(),
          limit: pos_integer(),
          total_count: pos_integer(),
          total_count_cap_exceeded: boolean()
        }

  defstruct [:after, :before, :limit, :total_count, :total_count_cap_exceeded]
end