mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-01-04 06:33:11 +00:00
result types
This commit is contained in:
parent
1aec1a460d
commit
d0ee284d90
@ -162,6 +162,7 @@ proc deleteTask[T, DB](ctx: TaskCtx[T], ds: DB;
|
||||
|
||||
method delete*(self: ThreadDatastore,
|
||||
key: Key): Future[?!void] {.async.} =
|
||||
## delete key
|
||||
await self.semaphore.acquire()
|
||||
without signal =? acquireSignal(), err:
|
||||
return failure err
|
||||
@ -174,7 +175,7 @@ method delete*(self: ThreadDatastore,
|
||||
|
||||
method delete*(self: ThreadDatastore,
|
||||
keys: seq[Key]): Future[?!void] {.async.} =
|
||||
|
||||
## delete batch
|
||||
for key in keys:
|
||||
if err =? (await self.delete(key)).errorOption:
|
||||
return failure err
|
||||
@ -185,13 +186,13 @@ method delete*(self: ThreadDatastore,
|
||||
proc putTask[T, DB](ctx: TaskCtx[T], ds: DB;
|
||||
key: KeyId,
|
||||
data: DataBuffer) {.gcsafe, nimcall.} =
|
||||
## run backend command
|
||||
executeTask(ctx):
|
||||
put(ds, key, data)
|
||||
|
||||
method put*(self: ThreadDatastore,
|
||||
key: Key,
|
||||
data: seq[byte]): Future[?!void] {.async.} =
|
||||
## put key with data
|
||||
await self.semaphore.acquire()
|
||||
without signal =? acquireSignal(), err:
|
||||
return failure err
|
||||
@ -206,7 +207,7 @@ method put*(self: ThreadDatastore,
|
||||
method put*(
|
||||
self: ThreadDatastore,
|
||||
batch: seq[BatchEntry]): Future[?!void] {.async.} =
|
||||
|
||||
## put batch data
|
||||
for entry in batch:
|
||||
if err =? (await self.put(entry.key, entry.data)).errorOption:
|
||||
return failure err
|
||||
|
||||
@ -82,28 +82,28 @@ suite "Test Basic ThreadDatastore with SQLite":
|
||||
|
||||
basicStoreTests(ds, key, bytes, otherBytes)
|
||||
|
||||
# suite "Test Query ThreadDatastore with SQLite":
|
||||
suite "Test Query ThreadDatastore with SQLite":
|
||||
|
||||
# var
|
||||
# sqlStore: SQLiteBackend[KeyId,DataBuffer]
|
||||
# ds: ThreadDatastore
|
||||
# taskPool: Taskpool
|
||||
# key = Key.init("/a/b").tryGet()
|
||||
# bytes = "some bytes".toBytes
|
||||
# otherBytes = "some other bytes".toBytes
|
||||
var
|
||||
sqlStore: SQLiteBackend[KeyId,DataBuffer]
|
||||
ds: ThreadDatastore
|
||||
taskPool: Taskpool
|
||||
key = Key.init("/a/b").tryGet()
|
||||
bytes = "some bytes".toBytes
|
||||
otherBytes = "some other bytes".toBytes
|
||||
|
||||
# setup:
|
||||
# sqlStore = newSQLiteBackend[KeyId, DataBuffer](Memory).tryGet()
|
||||
# taskPool = Taskpool.new(NumThreads)
|
||||
# ds = ThreadDatastore.new(sqlStore, tp = taskPool).tryGet()
|
||||
setup:
|
||||
sqlStore = newSQLiteBackend[KeyId, DataBuffer](Memory).tryGet()
|
||||
taskPool = Taskpool.new(NumThreads)
|
||||
ds = ThreadDatastore.new(sqlStore, tp = taskPool).tryGet()
|
||||
|
||||
# teardown:
|
||||
# GC_fullCollect()
|
||||
teardown:
|
||||
GC_fullCollect()
|
||||
|
||||
# (await ds.close()).tryGet()
|
||||
# taskPool.shutdown()
|
||||
(await ds.close()).tryGet()
|
||||
taskPool.shutdown()
|
||||
|
||||
# queryTests(ds, true)
|
||||
queryTests(ds, true)
|
||||
|
||||
# suite "Test Basic ThreadDatastore with fsds":
|
||||
# let
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user