Current section
Files
Jump to
Current section
Files
src/trove@range.erl
-module(trove@range).
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
-define(FILEPATH, "src/trove/range.gleam").
-export_type([bound/1, direction/0]).
-if(?OTP_RELEASE >= 27).
-define(MODULEDOC(Str), -moduledoc(Str)).
-define(DOC(Str), -doc(Str)).
-else.
-define(MODULEDOC(Str), -compile([])).
-define(DOC(Str), -compile([])).
-endif.
?MODULEDOC(
" Public types for range queries.\n"
"\n"
" Use `Bound(k)` to set lower and upper limits, and `Direction` to control\n"
" iteration order. Pass these to `trove.range` or `trove.snapshot_range`.\n"
"\n"
" ```gleam\n"
" import gleam/option.{None, Some}\n"
" import trove\n"
" import trove/range\n"
"\n"
" let entries =\n"
" trove.range(\n"
" db,\n"
" min: Some(range.Inclusive(\"a\")),\n"
" max: Some(range.Exclusive(\"z\")),\n"
" direction: range.Forward,\n"
" )\n"
" ```\n"
).
-type bound(JHR) :: {inclusive, JHR} | {exclusive, JHR}.
-type direction() :: forward | reverse.