Skip to content

Commit

Permalink
Merge pull request #25 from xyb/removeuglycast
Browse files Browse the repository at this point in the history
remove ugly cast
  • Loading branch information
stefantalpalaru committed Jul 20, 2020
2 parents 11d8028 + 1717743 commit 6aab1e0
Showing 1 changed file with 4 additions and 4 deletions.
8 changes: 4 additions & 4 deletions examples/simple_example.nim
Original file line number Diff line number Diff line change
Expand Up @@ -32,18 +32,18 @@ proc main() =
var writeOptions = rocksdb_writeoptions_create()
let key = "key"
let put_value = "value"
rocksdb_put(db, writeOptions, key.cstring, cast[csize_t](key.len), put_value.cstring, cast[csize_t](put_value.len), err.addr)
rocksdb_put(db, writeOptions, key.cstring, key.len.csize_t, put_value.cstring, put_value.len.csize_t, err.addr)
doAssert err.isNil, $err

# Get value
var readOptions = rocksdb_readoptions_create()
var len: csize_t
let raw_value = rocksdb_get(db, readOptions, key, cast[csize_t](key.len), addr len, err.addr) # Important: rocksdb_get is not null-terminated
let raw_value = rocksdb_get(db, readOptions, key, key.len.csize_t, addr len, err.addr) # Important: rocksdb_get is not null-terminated
doAssert err.isNil, $err

# Copy it to a regular Nim string (copyMem workaround because raw value is NOT null-terminated)
var get_value = newString(cast[int](len))
copyMem(addr get_value[0], unsafeAddr raw_value[0], cast[int](len) * sizeof(char))
var get_value = newString(len.int)
copyMem(addr get_value[0], unsafeAddr raw_value[0], len.int * sizeof(char))

doAssert get_value == put_value

Expand Down

0 comments on commit 6aab1e0

Please sign in to comment.