refactoring to non-async

This commit is contained in:
Jaremy Creechley 2023-09-20 21:21:15 -07:00
parent 5752eb01e1
commit 357ab44b90
No known key found for this signature in database
GPG Key ID: 4E66FB67B21D3300

View File

@ -42,7 +42,7 @@ proc has*(self: SQLiteDatastore, key: DbKey): ?!bool =
proc delete*(self: SQLiteDatastore, key: DbKey): ?!void =
return self.db.deleteStmt.exec((key.data))
proc delete*(self: SQLiteDatastore, keys: seq[DbKey]): ?!void =
proc delete*(self: SQLiteDatastore, keys: openArray[DbKey]): ?!void =
if err =? self.db.beginStmt.exec().errorOption:
return failure(err)
@ -78,10 +78,15 @@ proc get*(self: SQLiteDatastore, key: DbKey): ?!seq[byte] =
return success bytes
proc put*(self: SQLiteDatastore, key: DbKey, data: seq[byte]): ?!void =
return self.db.putStmt.exec((key.id, data, timestamp()))
proc put*(self: SQLiteDatastore, key: DbKey, data: DbVal): ?!void =
when DbVal is seq[byte]:
return self.db.putStmt.exec((key.id, data, timestamp()))
elif DbVal is DataBuffer:
return self.db.putBufferStmt.exec((key.id, data, timestamp()))
else:
{.error: "unknown type".}
proc put*(self: SQLiteDatastore, batch: iterator (): DbBatchEntry): ?!void =
proc put*(self: SQLiteDatastore, batch: openArray[DbBatchEntry]): ?!void =
if err =? self.db.beginStmt.exec().errorOption:
return failure err
@ -102,7 +107,6 @@ proc close*(self: SQLiteDatastore): ?!void =
return success()
proc query*(self: SQLiteDatastore,
query: DbQuery
): Result[iterator(): ?!DbQueryResponse {.closure.}, ref CatchableError] =
@ -186,7 +190,7 @@ proc query*(self: SQLiteDatastore,
return success (key.some, data)
of SQLITE_DONE:
return success (KeyId.none, DataBuffer.new(0))
return
else:
return failure newException(DatastoreError, $sqlite3_errstr(v))