-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.