add proc getOrDefault

This commit is contained in:
Xie Yanbo 2020-02-27 20:31:06 +08:00
parent 44c16e08c7
commit bd0e208256
2 changed files with 15 additions and 0 deletions

View File

@ -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

View File

@ -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")