2022-09-19 17:13:11 -06:00

43 lines
718 B
Nim

import pkg/upraises
import pkg/chronos
import ./key
type
SortOrder* {.pure.} = enum
Assending,
Descensing
Query* = object
key*: Key
value*: bool
limit*: int
skip*: int
sort*: SortOrder
QueryResponse* = tuple[key: Key, data: seq[byte]]
GetNext* = proc(): Future[QueryResponse] {.upraises: [], gcsafe, closure.}
QueryIter* = object
finished: bool
next*: GetNext
iterator items*(q: QueryIter): Future[QueryResponse] =
while not q.finished:
yield q.next()
proc init*(
T: type Query,
key: Key,
value = false,
sort = SortOrder.Descensing,
skip = 0,
limit = 0): T =
T(
key: key,
value: value,
sort: sort,
skip: skip,
limit: limit)