compiler really doesn't like this

This commit is contained in:
Jaremy Creechley 2023-08-29 20:42:53 -07:00
parent a13dee6ea1
commit b010d0a985
No known key found for this signature in database
GPG Key ID: 4E66FB67B21D3300
2 changed files with 21 additions and 22 deletions

View File

@ -29,14 +29,12 @@ type
next*: GetNext
dispose*: IterDispose
proc waitForAllQueryResults*(qi: QueryIter): Future[?!seq[QueryResponse]] {.async.} =
proc waitForAllQueryResults*(iter: QueryIter): Future[?!seq[QueryResponse]] {.async.} =
## for large blocks this would be *expensive*
var res: seq[QueryResponse]
# let iterRes = await qi
# if iterRes.isErr():
# return failure iterRes.error()
# let iter = iterRes.get()
let iter = qi
# if qi.isErr():
# return failure qi.error()
# let iter = qi.get()
while not iter.finished:
let val = await iter.next()

View File

@ -58,27 +58,28 @@ template queryTests*(ds: Datastore, extended = true) {.dirty.} =
(await iter.dispose()).tryGet
# test "Key should query all keys without values":
# let
# q = Query.init(key1, value = false)
test "Key should query all keys without values":
let
q = Query.init(key1, value = false)
# (await ds.put(key1, val1)).tryGet
# (await ds.put(key2, val2)).tryGet
# (await ds.put(key3, val3)).tryGet
(await ds.put(key1, val1)).tryGet
(await ds.put(key2, val2)).tryGet
(await ds.put(key3, val3)).tryGet
# let
# res = tryGet(await ds.query(q).waitForAllQueryResults())
let
all = waitForAllQueryResults(tryGet(await ds.query(q)))
res = tryGet(await all)
# check:
# res.len == 3
# res[0].key.get == key1
# res[0].data.len == 0
check:
res.len == 3
res[0].key.get == key1
res[0].data.len == 0
# res[1].key.get == key2
# res[1].data.len == 0
res[1].key.get == key2
res[1].data.len == 0
# res[2].key.get == key3
# res[2].data.len == 0
res[2].key.get == key3
res[2].data.len == 0
# test "Key should not query parent":