proper query iterator interface

This commit is contained in:
Dmitriy Ryajov 2022-09-19 17:13:11 -06:00
parent 60e0ea5573
commit ec4015a404
No known key found for this signature in database
GPG Key ID: DA8C680CE7C657A4

View File

@ -1,3 +1,6 @@
import pkg/upraises
import pkg/chronos
import ./key
type
@ -13,7 +16,15 @@ type
sort*: SortOrder
QueryResponse* = tuple[key: Key, data: seq[byte]]
QueryIter* = iterator(): QueryResponse {.closure.}
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,