add proc getOrDefault
This commit is contained in:
parent
44c16e08c7
commit
bd0e208256
|
@ -138,6 +138,18 @@ proc get*(self: LevelDb, key: string): Option[string] =
|
|||
result = some(newString(s, size))
|
||||
free(s)
|
||||
|
||||
proc getOrDefault*(self: LevelDb, key: string, default = ""): string =
|
||||
runnableExamples:
|
||||
let db = leveldb.open("/tmp/test")
|
||||
doAssert db.getOrDefault("what?", "nothing") == "nothing"
|
||||
db.close()
|
||||
|
||||
let val = self.get(key)
|
||||
if val.isNone():
|
||||
result = default
|
||||
else:
|
||||
result = val.get()
|
||||
|
||||
proc delete*(self: LevelDb, key: string, sync = true) =
|
||||
var errPtr: cstring = nil
|
||||
let writeOptions = if sync: self.syncWriteOptions else: self.asyncWriteOptions
|
||||
|
|
|
@ -65,6 +65,9 @@ suite "leveldb":
|
|||
db.put("hello", "world")
|
||||
check(db.get("hello") == some("world"))
|
||||
|
||||
test "get or default":
|
||||
check(db.getOrDefault("nothing", "yes") == "yes")
|
||||
|
||||
test "delete":
|
||||
db.put("hello", "world")
|
||||
db.delete("hello")
|
||||
|
|
Loading…
Reference in New Issue