mirror of
https://github.com/logos-storage/nim-datastore.git
synced 2026-01-02 21:53:05 +00:00
29 lines
1.1 KiB
Nim
29 lines
1.1 KiB
Nim
import pkg/questionable/results
|
|
import pkg/upraises
|
|
|
|
import threads/databuffer
|
|
|
|
push: {.upraises: [].}
|
|
|
|
type
|
|
Datastore2*[T] = object
|
|
has*: proc(self: SharedPtr[T], key: KeyBuffer): ?!bool {.nimcall, gcsafe, raises: [].}
|
|
delete*: proc(self: SharedPtr[T], key: KeyBuffer): ?!void {.nimcall, gcsafe, raises: [].}
|
|
get*: proc(self: SharedPtr[T], key: KeyBuffer): ?!ValueBuffer {.nimcall, gcsafe, raises: [].}
|
|
put*: proc(self: SharedPtr[T], key: KeyBuffer, data: ValueBuffer): ?!void {.nimcall, gcsafe, raises: [].}
|
|
close*: proc(self: SharedPtr[T]): ?!void {.gcsafe, raises: [].}
|
|
ids*: SharedPtr[T]
|
|
|
|
proc has*[T](self: Datastore2[T], key: KeyBuffer): ?!bool =
|
|
self.has(self.ids, key)
|
|
proc delete*[T](self: Datastore2[T], key: KeyBuffer): ?!void {.nimcall.} =
|
|
self.delete(self.ids, key)
|
|
proc get*[T](self: Datastore2[T], key: KeyBuffer): ?!ValueBuffer {.nimcall.} =
|
|
self.get(self.ids, key)
|
|
proc put*[T](self: Datastore2[T], key: KeyBuffer, data: ValueBuffer): ?!void {.nimcall.} =
|
|
self.put(self.ids, key, data)
|
|
proc close*[T](self: Datastore2[T]): ?!void {.nimcall.} =
|
|
echo "CLOSE: ", self
|
|
echo "CLOSE: ", self.ids.repr
|
|
self.close(self.ids)
|