moves build output to /src/leveldb/raw.nim
This commit is contained in:
parent
3f3ab38734
commit
3d9a2d982d
|
@ -2,7 +2,6 @@ nimcache/
|
|||
/test.db/
|
||||
/leveldb.e
|
||||
tests/packagetest/packagetest
|
||||
src/leveldb
|
||||
tests/test
|
||||
src/htmldocs/
|
||||
leveldbtool
|
||||
|
|
8
build.sh
8
build.sh
|
@ -1,6 +1,8 @@
|
|||
#!/bin/bash
|
||||
root=$(dirname "$0")
|
||||
|
||||
output="${root}/src/leveldb/raw.nim"
|
||||
|
||||
# install nimterop, if not already installed
|
||||
if ! [ -x "$(command -v toast)" ]; then
|
||||
nimble install -y nimterop@0.6.13
|
||||
|
@ -17,8 +19,8 @@ rm -Rf "${root}/sources/benchmarks"
|
|||
rm "${root}/sources/util/testutil.cc"
|
||||
|
||||
# Prelude:
|
||||
cat "${root}/prelude.nim" > "${root}/leveldb.nim"
|
||||
echo >> "${root}/leveldb.nim"
|
||||
cat "${root}/prelude.nim" > "${output}"
|
||||
echo >> "${output}"
|
||||
|
||||
# assemble files to be compiled:
|
||||
extensions="c cc cpp"
|
||||
|
@ -45,5 +47,5 @@ toast \
|
|||
--includeDirs="${root}/sources/include" \
|
||||
--includeDirs="${root}/build/include" \
|
||||
--includeDirs="${root}/build/include/port" \
|
||||
"${root}/sources/include/leveldb/c.h" >> "${root}/leveldb.nim"
|
||||
"${root}/sources/include/leveldb/c.h" >> "${output}"
|
||||
|
||||
|
|
293
leveldb.nim
293
leveldb.nim
|
@ -1,293 +0,0 @@
|
|||
when defined(windows):
|
||||
{.compile: "./sources/util/env_windows.cc".}
|
||||
{.passc: "-DLEVELDB_PLATFORM_POSIX".}
|
||||
|
||||
when defined(posix):
|
||||
{.compile: "./sources/util/env_posix.cc".}
|
||||
{.passc: "-DLEVELDB_PLATFORM_WINDOWS".}
|
||||
|
||||
# Generated @ 2024-05-09T14:13:25+02:00
|
||||
# Command line:
|
||||
# /home/ben/.nimble/pkgs/nimterop-0.6.13/nimterop/toast --compile=./sources/helpers/memenv/memenv.cc --compile=./sources/table/table.cc --compile=./sources/table/iterator.cc --compile=./sources/table/merger.cc --compile=./sources/table/block.cc --compile=./sources/table/table_builder.cc --compile=./sources/table/format.cc --compile=./sources/table/two_level_iterator.cc --compile=./sources/table/filter_block.cc --compile=./sources/table/block_builder.cc --compile=./sources/db/write_batch.cc --compile=./sources/db/version_edit.cc --compile=./sources/db/dbformat.cc --compile=./sources/db/builder.cc --compile=./sources/db/repair.cc --compile=./sources/db/db_impl.cc --compile=./sources/db/dumpfile.cc --compile=./sources/db/filename.cc --compile=./sources/db/log_reader.cc --compile=./sources/db/memtable.cc --compile=./sources/db/table_cache.cc --compile=./sources/db/c.cc --compile=./sources/db/log_writer.cc --compile=./sources/db/version_set.cc --compile=./sources/db/db_iter.cc --compile=./sources/util/hash.cc --compile=./sources/util/options.cc --compile=./sources/util/comparator.cc --compile=./sources/util/coding.cc --compile=./sources/util/histogram.cc --compile=./sources/util/logging.cc --compile=./sources/util/cache.cc --compile=./sources/util/env.cc --compile=./sources/util/filter_policy.cc --compile=./sources/util/arena.cc --compile=./sources/util/bloom.cc --compile=./sources/util/crc32c.cc --compile=./sources/util/status.cc --pnim --preprocess --noHeader --includeDirs=./sources --includeDirs=./sources/helpers --includeDirs=./sources/helpers/memenv --includeDirs=./sources/port --includeDirs=./sources/include --includeDirs=./build/include --includeDirs=./build/include/port ./sources/include/leveldb/c.h
|
||||
|
||||
{.push hint[ConvFromXtoItselfNotNeeded]: off.}
|
||||
import macros
|
||||
|
||||
macro defineEnum(typ: untyped): untyped =
|
||||
result = newNimNode(nnkStmtList)
|
||||
|
||||
# Enum mapped to distinct cint
|
||||
result.add quote do:
|
||||
type `typ`* = distinct cint
|
||||
|
||||
for i in ["+", "-", "*", "div", "mod", "shl", "shr", "or", "and", "xor", "<", "<=", "==", ">", ">="]:
|
||||
let
|
||||
ni = newIdentNode(i)
|
||||
typout = if i[0] in "<=>": newIdentNode("bool") else: typ # comparisons return bool
|
||||
if i[0] == '>': # cannot borrow `>` and `>=` from templates
|
||||
let
|
||||
nopp = if i.len == 2: newIdentNode("<=") else: newIdentNode("<")
|
||||
result.add quote do:
|
||||
proc `ni`*(x: `typ`, y: cint): `typout` = `nopp`(y, x)
|
||||
proc `ni`*(x: cint, y: `typ`): `typout` = `nopp`(y, x)
|
||||
proc `ni`*(x, y: `typ`): `typout` = `nopp`(y, x)
|
||||
else:
|
||||
result.add quote do:
|
||||
proc `ni`*(x: `typ`, y: cint): `typout` {.borrow.}
|
||||
proc `ni`*(x: cint, y: `typ`): `typout` {.borrow.}
|
||||
proc `ni`*(x, y: `typ`): `typout` {.borrow.}
|
||||
result.add quote do:
|
||||
proc `ni`*(x: `typ`, y: int): `typout` = `ni`(x, y.cint)
|
||||
proc `ni`*(x: int, y: `typ`): `typout` = `ni`(x.cint, y)
|
||||
|
||||
let
|
||||
divop = newIdentNode("/") # `/`()
|
||||
dlrop = newIdentNode("$") # `$`()
|
||||
notop = newIdentNode("not") # `not`()
|
||||
result.add quote do:
|
||||
proc `divop`*(x, y: `typ`): `typ` = `typ`((x.float / y.float).cint)
|
||||
proc `divop`*(x: `typ`, y: cint): `typ` = `divop`(x, `typ`(y))
|
||||
proc `divop`*(x: cint, y: `typ`): `typ` = `divop`(`typ`(x), y)
|
||||
proc `divop`*(x: `typ`, y: int): `typ` = `divop`(x, y.cint)
|
||||
proc `divop`*(x: int, y: `typ`): `typ` = `divop`(x.cint, y)
|
||||
|
||||
proc `dlrop`*(x: `typ`): string {.borrow.}
|
||||
proc `notop`*(x: `typ`): `typ` {.borrow.}
|
||||
|
||||
|
||||
{.experimental: "codeReordering".}
|
||||
{.passC: "-I./sources".}
|
||||
{.passC: "-I./sources/helpers".}
|
||||
{.passC: "-I./sources/helpers/memenv".}
|
||||
{.passC: "-I./sources/port".}
|
||||
{.passC: "-I./sources/include".}
|
||||
{.passC: "-I./build/include".}
|
||||
{.passC: "-I./build/include/port".}
|
||||
{.compile: "./sources/helpers/memenv/memenv.cc".}
|
||||
{.compile: "./sources/table/table.cc".}
|
||||
{.compile: "./sources/table/iterator.cc".}
|
||||
{.compile: "./sources/table/merger.cc".}
|
||||
{.compile: "./sources/table/block.cc".}
|
||||
{.compile: "./sources/table/table_builder.cc".}
|
||||
{.compile: "./sources/table/format.cc".}
|
||||
{.compile: "./sources/table/two_level_iterator.cc".}
|
||||
{.compile: "./sources/table/filter_block.cc".}
|
||||
{.compile: "./sources/table/block_builder.cc".}
|
||||
{.compile: "./sources/db/write_batch.cc".}
|
||||
{.compile: "./sources/db/version_edit.cc".}
|
||||
{.compile: "./sources/db/dbformat.cc".}
|
||||
{.compile: "./sources/db/builder.cc".}
|
||||
{.compile: "./sources/db/repair.cc".}
|
||||
{.compile: "./sources/db/db_impl.cc".}
|
||||
{.compile: "./sources/db/dumpfile.cc".}
|
||||
{.compile: "./sources/db/filename.cc".}
|
||||
{.compile: "./sources/db/log_reader.cc".}
|
||||
{.compile: "./sources/db/memtable.cc".}
|
||||
{.compile: "./sources/db/table_cache.cc".}
|
||||
{.compile: "./sources/db/c.cc".}
|
||||
{.compile: "./sources/db/log_writer.cc".}
|
||||
{.compile: "./sources/db/version_set.cc".}
|
||||
{.compile: "./sources/db/db_iter.cc".}
|
||||
{.compile: "./sources/util/hash.cc".}
|
||||
{.compile: "./sources/util/options.cc".}
|
||||
{.compile: "./sources/util/comparator.cc".}
|
||||
{.compile: "./sources/util/coding.cc".}
|
||||
{.compile: "./sources/util/histogram.cc".}
|
||||
{.compile: "./sources/util/logging.cc".}
|
||||
{.compile: "./sources/util/cache.cc".}
|
||||
{.compile: "./sources/util/env.cc".}
|
||||
{.compile: "./sources/util/filter_policy.cc".}
|
||||
{.compile: "./sources/util/arena.cc".}
|
||||
{.compile: "./sources/util/bloom.cc".}
|
||||
{.compile: "./sources/util/crc32c.cc".}
|
||||
{.compile: "./sources/util/status.cc".}
|
||||
defineEnum(Enum_ch1)
|
||||
const
|
||||
leveldb_no_compression* = (0).cint
|
||||
leveldb_snappy_compression* = (1).cint
|
||||
type
|
||||
leveldb_t* {.incompleteStruct.} = object
|
||||
leveldb_cache_t* {.incompleteStruct.} = object
|
||||
leveldb_comparator_t* {.incompleteStruct.} = object
|
||||
leveldb_env_t* {.incompleteStruct.} = object
|
||||
leveldb_filelock_t* {.incompleteStruct.} = object
|
||||
leveldb_filterpolicy_t* {.incompleteStruct.} = object
|
||||
leveldb_iterator_t* {.incompleteStruct.} = object
|
||||
leveldb_logger_t* {.incompleteStruct.} = object
|
||||
leveldb_options_t* {.incompleteStruct.} = object
|
||||
leveldb_randomfile_t* {.incompleteStruct.} = object
|
||||
leveldb_readoptions_t* {.incompleteStruct.} = object
|
||||
leveldb_seqfile_t* {.incompleteStruct.} = object
|
||||
leveldb_snapshot_t* {.incompleteStruct.} = object
|
||||
leveldb_writablefile_t* {.incompleteStruct.} = object
|
||||
leveldb_writebatch_t* {.incompleteStruct.} = object
|
||||
leveldb_writeoptions_t* {.incompleteStruct.} = object
|
||||
proc leveldb_open*(options: ptr leveldb_options_t; name: cstring;
|
||||
errptr: ptr cstring): ptr leveldb_t {.importc, cdecl.}
|
||||
proc leveldb_close*(db: ptr leveldb_t) {.importc, cdecl.}
|
||||
proc leveldb_put*(db: ptr leveldb_t; options: ptr leveldb_writeoptions_t;
|
||||
key: cstring; keylen: uint; val: cstring; vallen: uint;
|
||||
errptr: ptr cstring) {.importc, cdecl.}
|
||||
proc leveldb_delete*(db: ptr leveldb_t; options: ptr leveldb_writeoptions_t;
|
||||
key: cstring; keylen: uint; errptr: ptr cstring) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_write*(db: ptr leveldb_t; options: ptr leveldb_writeoptions_t;
|
||||
batch: ptr leveldb_writebatch_t; errptr: ptr cstring) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_get*(db: ptr leveldb_t; options: ptr leveldb_readoptions_t;
|
||||
key: cstring; keylen: uint; vallen: ptr uint;
|
||||
errptr: ptr cstring): cstring {.importc, cdecl.}
|
||||
## ```
|
||||
## Returns NULL if not found. A malloc()ed array otherwise.
|
||||
## Stores the length of the array invallen.
|
||||
## ```
|
||||
proc leveldb_create_iterator*(db: ptr leveldb_t;
|
||||
options: ptr leveldb_readoptions_t): ptr leveldb_iterator_t {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_create_snapshot*(db: ptr leveldb_t): ptr leveldb_snapshot_t {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_release_snapshot*(db: ptr leveldb_t;
|
||||
snapshot: ptr leveldb_snapshot_t) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_property_value*(db: ptr leveldb_t; propname: cstring): cstring {.
|
||||
importc, cdecl.}
|
||||
## ```
|
||||
## Returns NULL if property name is unknown.
|
||||
## Else returns a pointer to a malloc()-ed null-terminated value.
|
||||
## ```
|
||||
proc leveldb_approximate_sizes*(db: ptr leveldb_t; num_ranges: cint;
|
||||
range_start_key: ptr cstring;
|
||||
range_start_key_len: ptr uint;
|
||||
range_limit_key: ptr cstring;
|
||||
range_limit_key_len: ptr uint; sizes: ptr uint64) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_compact_range*(db: ptr leveldb_t; start_key: cstring;
|
||||
start_key_len: uint; limit_key: cstring;
|
||||
limit_key_len: uint) {.importc, cdecl.}
|
||||
proc leveldb_destroy_db*(options: ptr leveldb_options_t; name: cstring;
|
||||
errptr: ptr cstring) {.importc, cdecl.}
|
||||
proc leveldb_repair_db*(options: ptr leveldb_options_t; name: cstring;
|
||||
errptr: ptr cstring) {.importc, cdecl.}
|
||||
proc leveldb_iter_destroy*(a1: ptr leveldb_iterator_t) {.importc, cdecl.}
|
||||
proc leveldb_iter_valid*(a1: ptr leveldb_iterator_t): uint8 {.importc, cdecl.}
|
||||
proc leveldb_iter_seek_to_first*(a1: ptr leveldb_iterator_t) {.importc, cdecl.}
|
||||
proc leveldb_iter_seek_to_last*(a1: ptr leveldb_iterator_t) {.importc, cdecl.}
|
||||
proc leveldb_iter_seek*(a1: ptr leveldb_iterator_t; k: cstring; klen: uint) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_iter_next*(a1: ptr leveldb_iterator_t) {.importc, cdecl.}
|
||||
proc leveldb_iter_prev*(a1: ptr leveldb_iterator_t) {.importc, cdecl.}
|
||||
proc leveldb_iter_key*(a1: ptr leveldb_iterator_t; klen: ptr uint): cstring {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_iter_value*(a1: ptr leveldb_iterator_t; vlen: ptr uint): cstring {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_iter_get_error*(a1: ptr leveldb_iterator_t; errptr: ptr cstring) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_writebatch_create*(): ptr leveldb_writebatch_t {.importc, cdecl.}
|
||||
proc leveldb_writebatch_destroy*(a1: ptr leveldb_writebatch_t) {.importc, cdecl.}
|
||||
proc leveldb_writebatch_clear*(a1: ptr leveldb_writebatch_t) {.importc, cdecl.}
|
||||
proc leveldb_writebatch_put*(a1: ptr leveldb_writebatch_t; key: cstring;
|
||||
klen: uint; val: cstring; vlen: uint) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_writebatch_delete*(a1: ptr leveldb_writebatch_t; key: cstring;
|
||||
klen: uint) {.importc, cdecl.}
|
||||
proc leveldb_writebatch_iterate*(a1: ptr leveldb_writebatch_t; state: pointer;
|
||||
put: proc (a1: pointer; k: cstring; klen: uint; v: cstring; vlen: uint) {.
|
||||
cdecl.}; deleted: proc (a1: pointer; k: cstring; klen: uint) {.cdecl.}) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_writebatch_append*(destination: ptr leveldb_writebatch_t;
|
||||
source: ptr leveldb_writebatch_t) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_options_create*(): ptr leveldb_options_t {.importc, cdecl.}
|
||||
proc leveldb_options_destroy*(a1: ptr leveldb_options_t) {.importc, cdecl.}
|
||||
proc leveldb_options_set_comparator*(a1: ptr leveldb_options_t;
|
||||
a2: ptr leveldb_comparator_t) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_options_set_filter_policy*(a1: ptr leveldb_options_t;
|
||||
a2: ptr leveldb_filterpolicy_t) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_create_if_missing*(a1: ptr leveldb_options_t; a2: uint8) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_error_if_exists*(a1: ptr leveldb_options_t; a2: uint8) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_paranoid_checks*(a1: ptr leveldb_options_t; a2: uint8) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_env*(a1: ptr leveldb_options_t; a2: ptr leveldb_env_t) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_info_log*(a1: ptr leveldb_options_t;
|
||||
a2: ptr leveldb_logger_t) {.importc, cdecl.}
|
||||
proc leveldb_options_set_write_buffer_size*(a1: ptr leveldb_options_t; a2: uint) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_max_open_files*(a1: ptr leveldb_options_t; a2: cint) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_cache*(a1: ptr leveldb_options_t;
|
||||
a2: ptr leveldb_cache_t) {.importc, cdecl.}
|
||||
proc leveldb_options_set_block_size*(a1: ptr leveldb_options_t; a2: uint) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_block_restart_interval*(a1: ptr leveldb_options_t;
|
||||
a2: cint) {.importc, cdecl.}
|
||||
proc leveldb_options_set_max_file_size*(a1: ptr leveldb_options_t; a2: uint) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_compression*(a1: ptr leveldb_options_t; a2: cint) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_comparator_create*(state: pointer;
|
||||
destructor: proc (a1: pointer) {.cdecl.};
|
||||
compare: proc (a1: pointer; a: cstring; alen: uint; b: cstring; blen: uint): cint {.
|
||||
cdecl.}; name: proc (a1: pointer): cstring {.cdecl.}): ptr leveldb_comparator_t {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_comparator_destroy*(a1: ptr leveldb_comparator_t) {.importc, cdecl.}
|
||||
proc leveldb_filterpolicy_create*(state: pointer;
|
||||
destructor: proc (a1: pointer) {.cdecl.};
|
||||
create_filter: proc (a1: pointer; key_array: ptr cstring;
|
||||
key_length_array: ptr uint; num_keys: cint;
|
||||
filter_length: ptr uint): cstring {.cdecl.};
|
||||
key_may_match: proc (a1: pointer; key: cstring; length: uint;
|
||||
filter: cstring; filter_length: uint): uint8 {.cdecl.};
|
||||
name: proc (a1: pointer): cstring {.cdecl.}): ptr leveldb_filterpolicy_t {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_filterpolicy_destroy*(a1: ptr leveldb_filterpolicy_t) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_filterpolicy_create_bloom*(bits_per_key: cint): ptr leveldb_filterpolicy_t {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_readoptions_create*(): ptr leveldb_readoptions_t {.importc, cdecl.}
|
||||
proc leveldb_readoptions_destroy*(a1: ptr leveldb_readoptions_t) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_readoptions_set_verify_checksums*(a1: ptr leveldb_readoptions_t;
|
||||
a2: uint8) {.importc, cdecl.}
|
||||
proc leveldb_readoptions_set_fill_cache*(a1: ptr leveldb_readoptions_t;
|
||||
a2: uint8) {.importc, cdecl.}
|
||||
proc leveldb_readoptions_set_snapshot*(a1: ptr leveldb_readoptions_t;
|
||||
a2: ptr leveldb_snapshot_t) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_writeoptions_create*(): ptr leveldb_writeoptions_t {.importc, cdecl.}
|
||||
proc leveldb_writeoptions_destroy*(a1: ptr leveldb_writeoptions_t) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_writeoptions_set_sync*(a1: ptr leveldb_writeoptions_t; a2: uint8) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_cache_create_lru*(capacity: uint): ptr leveldb_cache_t {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_cache_destroy*(cache: ptr leveldb_cache_t) {.importc, cdecl.}
|
||||
proc leveldb_create_default_env*(): ptr leveldb_env_t {.importc, cdecl.}
|
||||
proc leveldb_env_destroy*(a1: ptr leveldb_env_t) {.importc, cdecl.}
|
||||
proc leveldb_env_get_test_directory*(a1: ptr leveldb_env_t): cstring {.importc,
|
||||
cdecl.}
|
||||
## ```
|
||||
## If not NULL, the returned buffer must be released using leveldb_free().
|
||||
## ```
|
||||
proc leveldb_free*(`ptr`: pointer) {.importc, cdecl.}
|
||||
## ```
|
||||
## Utility
|
||||
## Calls free(ptr).
|
||||
## REQUIRES: ptr was malloc()-ed and returned by one of the routines
|
||||
## in this file. Note that in certain cases (typically on Windows), you
|
||||
## may need to call this routine instead of free(ptr) to dispose of
|
||||
## malloc()-ed memory returned by this library.
|
||||
## ```
|
||||
proc leveldb_major_version*(): cint {.importc, cdecl.}
|
||||
## ```
|
||||
## Return the major version number for this release.
|
||||
## ```
|
||||
proc leveldb_minor_version*(): cint {.importc, cdecl.}
|
||||
## ```
|
||||
## Return the minor version number for this release.
|
||||
## ```
|
||||
{.pop.}
|
|
@ -1,199 +1,293 @@
|
|||
## Copyright (c) 2011 The LevelDB Authors. All rights reserved.
|
||||
## Use of this source code is governed by a BSD-style license that can be
|
||||
## found in the LICENSE file. See the AUTHORS file for names of contributors.
|
||||
##
|
||||
## C bindings for leveldb. May be useful as a stable ABI that can be
|
||||
## used by programs that keep leveldb in a shared library, or for
|
||||
## a JNI api.
|
||||
##
|
||||
## Does not support:
|
||||
## . getters for the option types
|
||||
## . custom comparators that implement key shortening
|
||||
## . custom iter, db, env, cache implementations using just the C bindings
|
||||
##
|
||||
## Some conventions:
|
||||
##
|
||||
## (1) We expose just opaque struct pointers and functions to clients.
|
||||
## This allows us to change internal representations without having to
|
||||
## recompile clients.
|
||||
##
|
||||
## (2) For simplicity, there is no equivalent to the Slice type. Instead,
|
||||
## the caller has to pass the pointer and length as separate
|
||||
## arguments.
|
||||
##
|
||||
## (3) Errors are represented by a null-terminated c string. NULL
|
||||
## means no error. All operations that can raise an error are passed
|
||||
## a "char** errptr" as the last argument. One of the following must
|
||||
## be true on entry:
|
||||
## errptr == NULL
|
||||
## errptr points to a malloc()ed null-terminated error message
|
||||
## (On Windows, \*errptr must have been malloc()-ed by this library.)
|
||||
## On success, a leveldb routine leaves \*errptr unchanged.
|
||||
## On failure, leveldb frees the old value of \*errptr and
|
||||
## set \*errptr to a malloc()ed error message.
|
||||
##
|
||||
## (4) Bools have the type uint8_t (0 == false; rest == true)
|
||||
##
|
||||
## (5) All of the pointer arguments must be non-NULL.
|
||||
##
|
||||
when defined(windows):
|
||||
{.compile: "./sources/util/env_windows.cc".}
|
||||
{.passc: "-DLEVELDB_PLATFORM_POSIX".}
|
||||
|
||||
{.passl: "-lleveldb".}
|
||||
when defined(posix):
|
||||
{.compile: "./sources/util/env_posix.cc".}
|
||||
{.passc: "-DLEVELDB_PLATFORM_WINDOWS".}
|
||||
|
||||
## # Exported types
|
||||
# Generated @ 2024-05-09T14:13:25+02:00
|
||||
# Command line:
|
||||
# /home/ben/.nimble/pkgs/nimterop-0.6.13/nimterop/toast --compile=./sources/helpers/memenv/memenv.cc --compile=./sources/table/table.cc --compile=./sources/table/iterator.cc --compile=./sources/table/merger.cc --compile=./sources/table/block.cc --compile=./sources/table/table_builder.cc --compile=./sources/table/format.cc --compile=./sources/table/two_level_iterator.cc --compile=./sources/table/filter_block.cc --compile=./sources/table/block_builder.cc --compile=./sources/db/write_batch.cc --compile=./sources/db/version_edit.cc --compile=./sources/db/dbformat.cc --compile=./sources/db/builder.cc --compile=./sources/db/repair.cc --compile=./sources/db/db_impl.cc --compile=./sources/db/dumpfile.cc --compile=./sources/db/filename.cc --compile=./sources/db/log_reader.cc --compile=./sources/db/memtable.cc --compile=./sources/db/table_cache.cc --compile=./sources/db/c.cc --compile=./sources/db/log_writer.cc --compile=./sources/db/version_set.cc --compile=./sources/db/db_iter.cc --compile=./sources/util/hash.cc --compile=./sources/util/options.cc --compile=./sources/util/comparator.cc --compile=./sources/util/coding.cc --compile=./sources/util/histogram.cc --compile=./sources/util/logging.cc --compile=./sources/util/cache.cc --compile=./sources/util/env.cc --compile=./sources/util/filter_policy.cc --compile=./sources/util/arena.cc --compile=./sources/util/bloom.cc --compile=./sources/util/crc32c.cc --compile=./sources/util/status.cc --pnim --preprocess --noHeader --includeDirs=./sources --includeDirs=./sources/helpers --includeDirs=./sources/helpers/memenv --includeDirs=./sources/port --includeDirs=./sources/include --includeDirs=./build/include --includeDirs=./build/include/port ./sources/include/leveldb/c.h
|
||||
|
||||
{.push hint[ConvFromXtoItselfNotNeeded]: off.}
|
||||
import macros
|
||||
|
||||
macro defineEnum(typ: untyped): untyped =
|
||||
result = newNimNode(nnkStmtList)
|
||||
|
||||
# Enum mapped to distinct cint
|
||||
result.add quote do:
|
||||
type `typ`* = distinct cint
|
||||
|
||||
for i in ["+", "-", "*", "div", "mod", "shl", "shr", "or", "and", "xor", "<", "<=", "==", ">", ">="]:
|
||||
let
|
||||
ni = newIdentNode(i)
|
||||
typout = if i[0] in "<=>": newIdentNode("bool") else: typ # comparisons return bool
|
||||
if i[0] == '>': # cannot borrow `>` and `>=` from templates
|
||||
let
|
||||
nopp = if i.len == 2: newIdentNode("<=") else: newIdentNode("<")
|
||||
result.add quote do:
|
||||
proc `ni`*(x: `typ`, y: cint): `typout` = `nopp`(y, x)
|
||||
proc `ni`*(x: cint, y: `typ`): `typout` = `nopp`(y, x)
|
||||
proc `ni`*(x, y: `typ`): `typout` = `nopp`(y, x)
|
||||
else:
|
||||
result.add quote do:
|
||||
proc `ni`*(x: `typ`, y: cint): `typout` {.borrow.}
|
||||
proc `ni`*(x: cint, y: `typ`): `typout` {.borrow.}
|
||||
proc `ni`*(x, y: `typ`): `typout` {.borrow.}
|
||||
result.add quote do:
|
||||
proc `ni`*(x: `typ`, y: int): `typout` = `ni`(x, y.cint)
|
||||
proc `ni`*(x: int, y: `typ`): `typout` = `ni`(x.cint, y)
|
||||
|
||||
let
|
||||
divop = newIdentNode("/") # `/`()
|
||||
dlrop = newIdentNode("$") # `$`()
|
||||
notop = newIdentNode("not") # `not`()
|
||||
result.add quote do:
|
||||
proc `divop`*(x, y: `typ`): `typ` = `typ`((x.float / y.float).cint)
|
||||
proc `divop`*(x: `typ`, y: cint): `typ` = `divop`(x, `typ`(y))
|
||||
proc `divop`*(x: cint, y: `typ`): `typ` = `divop`(`typ`(x), y)
|
||||
proc `divop`*(x: `typ`, y: int): `typ` = `divop`(x, y.cint)
|
||||
proc `divop`*(x: int, y: `typ`): `typ` = `divop`(x.cint, y)
|
||||
|
||||
proc `dlrop`*(x: `typ`): string {.borrow.}
|
||||
proc `notop`*(x: `typ`): `typ` {.borrow.}
|
||||
|
||||
|
||||
{.experimental: "codeReordering".}
|
||||
{.passC: "-I./sources".}
|
||||
{.passC: "-I./sources/helpers".}
|
||||
{.passC: "-I./sources/helpers/memenv".}
|
||||
{.passC: "-I./sources/port".}
|
||||
{.passC: "-I./sources/include".}
|
||||
{.passC: "-I./build/include".}
|
||||
{.passC: "-I./build/include/port".}
|
||||
{.compile: "./sources/helpers/memenv/memenv.cc".}
|
||||
{.compile: "./sources/table/table.cc".}
|
||||
{.compile: "./sources/table/iterator.cc".}
|
||||
{.compile: "./sources/table/merger.cc".}
|
||||
{.compile: "./sources/table/block.cc".}
|
||||
{.compile: "./sources/table/table_builder.cc".}
|
||||
{.compile: "./sources/table/format.cc".}
|
||||
{.compile: "./sources/table/two_level_iterator.cc".}
|
||||
{.compile: "./sources/table/filter_block.cc".}
|
||||
{.compile: "./sources/table/block_builder.cc".}
|
||||
{.compile: "./sources/db/write_batch.cc".}
|
||||
{.compile: "./sources/db/version_edit.cc".}
|
||||
{.compile: "./sources/db/dbformat.cc".}
|
||||
{.compile: "./sources/db/builder.cc".}
|
||||
{.compile: "./sources/db/repair.cc".}
|
||||
{.compile: "./sources/db/db_impl.cc".}
|
||||
{.compile: "./sources/db/dumpfile.cc".}
|
||||
{.compile: "./sources/db/filename.cc".}
|
||||
{.compile: "./sources/db/log_reader.cc".}
|
||||
{.compile: "./sources/db/memtable.cc".}
|
||||
{.compile: "./sources/db/table_cache.cc".}
|
||||
{.compile: "./sources/db/c.cc".}
|
||||
{.compile: "./sources/db/log_writer.cc".}
|
||||
{.compile: "./sources/db/version_set.cc".}
|
||||
{.compile: "./sources/db/db_iter.cc".}
|
||||
{.compile: "./sources/util/hash.cc".}
|
||||
{.compile: "./sources/util/options.cc".}
|
||||
{.compile: "./sources/util/comparator.cc".}
|
||||
{.compile: "./sources/util/coding.cc".}
|
||||
{.compile: "./sources/util/histogram.cc".}
|
||||
{.compile: "./sources/util/logging.cc".}
|
||||
{.compile: "./sources/util/cache.cc".}
|
||||
{.compile: "./sources/util/env.cc".}
|
||||
{.compile: "./sources/util/filter_policy.cc".}
|
||||
{.compile: "./sources/util/arena.cc".}
|
||||
{.compile: "./sources/util/bloom.cc".}
|
||||
{.compile: "./sources/util/crc32c.cc".}
|
||||
{.compile: "./sources/util/status.cc".}
|
||||
defineEnum(Enum_ch1)
|
||||
const
|
||||
leveldb_no_compression* = (0).cint
|
||||
leveldb_snappy_compression* = (1).cint
|
||||
type
|
||||
leveldb_options_t* = object
|
||||
leveldb_writeoptions_t* = object
|
||||
leveldb_readoptions_t* = object
|
||||
leveldb_writebatch_t* = object
|
||||
leveldb_iterator_t* = object
|
||||
leveldb_snapshot_t* = object
|
||||
leveldb_comparator_t* = object
|
||||
leveldb_filterpolicy_t* = object
|
||||
leveldb_env_t* = object
|
||||
leveldb_logger_t* = object
|
||||
leveldb_cache_t* = object
|
||||
leveldb_t* = object
|
||||
|
||||
## DB operations
|
||||
|
||||
proc leveldb_open*(options: ptr leveldb_options_t; name: cstring; errptr: ptr cstring): ptr leveldb_t {.importc.}
|
||||
proc leveldb_close*(db: ptr leveldb_t) {.importc.}
|
||||
proc leveldb_put*(db: ptr leveldb_t; options: ptr leveldb_writeoptions_t; key: cstring;
|
||||
keylen: csize_t; val: cstring; vallen: csize_t; errptr: ptr cstring) {.importc.}
|
||||
leveldb_t* {.incompleteStruct.} = object
|
||||
leveldb_cache_t* {.incompleteStruct.} = object
|
||||
leveldb_comparator_t* {.incompleteStruct.} = object
|
||||
leveldb_env_t* {.incompleteStruct.} = object
|
||||
leveldb_filelock_t* {.incompleteStruct.} = object
|
||||
leveldb_filterpolicy_t* {.incompleteStruct.} = object
|
||||
leveldb_iterator_t* {.incompleteStruct.} = object
|
||||
leveldb_logger_t* {.incompleteStruct.} = object
|
||||
leveldb_options_t* {.incompleteStruct.} = object
|
||||
leveldb_randomfile_t* {.incompleteStruct.} = object
|
||||
leveldb_readoptions_t* {.incompleteStruct.} = object
|
||||
leveldb_seqfile_t* {.incompleteStruct.} = object
|
||||
leveldb_snapshot_t* {.incompleteStruct.} = object
|
||||
leveldb_writablefile_t* {.incompleteStruct.} = object
|
||||
leveldb_writebatch_t* {.incompleteStruct.} = object
|
||||
leveldb_writeoptions_t* {.incompleteStruct.} = object
|
||||
proc leveldb_open*(options: ptr leveldb_options_t; name: cstring;
|
||||
errptr: ptr cstring): ptr leveldb_t {.importc, cdecl.}
|
||||
proc leveldb_close*(db: ptr leveldb_t) {.importc, cdecl.}
|
||||
proc leveldb_put*(db: ptr leveldb_t; options: ptr leveldb_writeoptions_t;
|
||||
key: cstring; keylen: uint; val: cstring; vallen: uint;
|
||||
errptr: ptr cstring) {.importc, cdecl.}
|
||||
proc leveldb_delete*(db: ptr leveldb_t; options: ptr leveldb_writeoptions_t;
|
||||
key: cstring; keylen: csize_t; errptr: ptr cstring) {.importc.}
|
||||
key: cstring; keylen: uint; errptr: ptr cstring) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_write*(db: ptr leveldb_t; options: ptr leveldb_writeoptions_t;
|
||||
batch: ptr leveldb_writebatch_t; errptr: ptr cstring) {.importc.}
|
||||
## Returns NULL if not found. A malloc()ed array otherwise.
|
||||
## Stores the length of the array in \*vallen.
|
||||
|
||||
proc leveldb_get*(db: ptr leveldb_t; options: ptr leveldb_readoptions_t; key: cstring;
|
||||
keylen: csize_t; vallen: ptr csize_t; errptr: ptr cstring): cstring {.importc.}
|
||||
proc leveldb_create_iterator*(db: ptr leveldb_t; options: ptr leveldb_readoptions_t): ptr leveldb_iterator_t {.importc.}
|
||||
proc leveldb_create_snapshot*(db: ptr leveldb_t): ptr leveldb_snapshot_t {.importc.}
|
||||
proc leveldb_release_snapshot*(db: ptr leveldb_t; snapshot: ptr leveldb_snapshot_t) {.importc.}
|
||||
## Returns NULL if property name is unknown.
|
||||
## Else returns a pointer to a malloc()-ed null-terminated value.
|
||||
|
||||
proc leveldb_property_value*(db: ptr leveldb_t; propname: cstring): cstring {.importc.}
|
||||
batch: ptr leveldb_writebatch_t; errptr: ptr cstring) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_get*(db: ptr leveldb_t; options: ptr leveldb_readoptions_t;
|
||||
key: cstring; keylen: uint; vallen: ptr uint;
|
||||
errptr: ptr cstring): cstring {.importc, cdecl.}
|
||||
## ```
|
||||
## Returns NULL if not found. A malloc()ed array otherwise.
|
||||
## Stores the length of the array invallen.
|
||||
## ```
|
||||
proc leveldb_create_iterator*(db: ptr leveldb_t;
|
||||
options: ptr leveldb_readoptions_t): ptr leveldb_iterator_t {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_create_snapshot*(db: ptr leveldb_t): ptr leveldb_snapshot_t {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_release_snapshot*(db: ptr leveldb_t;
|
||||
snapshot: ptr leveldb_snapshot_t) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_property_value*(db: ptr leveldb_t; propname: cstring): cstring {.
|
||||
importc, cdecl.}
|
||||
## ```
|
||||
## Returns NULL if property name is unknown.
|
||||
## Else returns a pointer to a malloc()-ed null-terminated value.
|
||||
## ```
|
||||
proc leveldb_approximate_sizes*(db: ptr leveldb_t; num_ranges: cint;
|
||||
range_start_key: ptr cstring;
|
||||
range_start_key_len: ptr csize_t;
|
||||
range_start_key_len: ptr uint;
|
||||
range_limit_key: ptr cstring;
|
||||
range_limit_key_len: ptr csize_t; sizes: ptr uint64) {.importc.}
|
||||
range_limit_key_len: ptr uint; sizes: ptr uint64) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_compact_range*(db: ptr leveldb_t; start_key: cstring;
|
||||
start_key_len: csize_t; limit_key: cstring;
|
||||
limit_key_len: csize_t) {.importc.}
|
||||
## Management operations
|
||||
|
||||
start_key_len: uint; limit_key: cstring;
|
||||
limit_key_len: uint) {.importc, cdecl.}
|
||||
proc leveldb_destroy_db*(options: ptr leveldb_options_t; name: cstring;
|
||||
errptr: ptr cstring) {.importc.}
|
||||
errptr: ptr cstring) {.importc, cdecl.}
|
||||
proc leveldb_repair_db*(options: ptr leveldb_options_t; name: cstring;
|
||||
errptr: ptr cstring) {.importc.}
|
||||
## Iterator
|
||||
|
||||
proc leveldb_iter_destroy*(a1: ptr leveldb_iterator_t) {.importc.}
|
||||
proc leveldb_iter_valid*(a1: ptr leveldb_iterator_t): uint8 {.importc.}
|
||||
proc leveldb_iter_seek_to_first*(a1: ptr leveldb_iterator_t) {.importc.}
|
||||
proc leveldb_iter_seek_to_last*(a1: ptr leveldb_iterator_t) {.importc.}
|
||||
proc leveldb_iter_seek*(a1: ptr leveldb_iterator_t; k: cstring; klen: csize_t) {.importc.}
|
||||
proc leveldb_iter_next*(a1: ptr leveldb_iterator_t) {.importc.}
|
||||
proc leveldb_iter_prev*(a1: ptr leveldb_iterator_t) {.importc.}
|
||||
proc leveldb_iter_key*(a1: ptr leveldb_iterator_t; klen: ptr csize_t): cstring {.importc.}
|
||||
proc leveldb_iter_value*(a1: ptr leveldb_iterator_t; vlen: ptr csize_t): cstring {.importc.}
|
||||
proc leveldb_iter_get_error*(a1: ptr leveldb_iterator_t; errptr: ptr cstring) {.importc.}
|
||||
## Write batch
|
||||
|
||||
proc leveldb_writebatch_create*(): ptr leveldb_writebatch_t {.importc.}
|
||||
proc leveldb_writebatch_destroy*(a1: ptr leveldb_writebatch_t) {.importc.}
|
||||
proc leveldb_writebatch_clear*(a1: ptr leveldb_writebatch_t) {.importc.}
|
||||
proc leveldb_writebatch_put*(a1: ptr leveldb_writebatch_t; key: cstring; klen: csize_t;
|
||||
val: cstring; vlen: csize_t) {.importc.}
|
||||
errptr: ptr cstring) {.importc, cdecl.}
|
||||
proc leveldb_iter_destroy*(a1: ptr leveldb_iterator_t) {.importc, cdecl.}
|
||||
proc leveldb_iter_valid*(a1: ptr leveldb_iterator_t): uint8 {.importc, cdecl.}
|
||||
proc leveldb_iter_seek_to_first*(a1: ptr leveldb_iterator_t) {.importc, cdecl.}
|
||||
proc leveldb_iter_seek_to_last*(a1: ptr leveldb_iterator_t) {.importc, cdecl.}
|
||||
proc leveldb_iter_seek*(a1: ptr leveldb_iterator_t; k: cstring; klen: uint) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_iter_next*(a1: ptr leveldb_iterator_t) {.importc, cdecl.}
|
||||
proc leveldb_iter_prev*(a1: ptr leveldb_iterator_t) {.importc, cdecl.}
|
||||
proc leveldb_iter_key*(a1: ptr leveldb_iterator_t; klen: ptr uint): cstring {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_iter_value*(a1: ptr leveldb_iterator_t; vlen: ptr uint): cstring {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_iter_get_error*(a1: ptr leveldb_iterator_t; errptr: ptr cstring) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_writebatch_create*(): ptr leveldb_writebatch_t {.importc, cdecl.}
|
||||
proc leveldb_writebatch_destroy*(a1: ptr leveldb_writebatch_t) {.importc, cdecl.}
|
||||
proc leveldb_writebatch_clear*(a1: ptr leveldb_writebatch_t) {.importc, cdecl.}
|
||||
proc leveldb_writebatch_put*(a1: ptr leveldb_writebatch_t; key: cstring;
|
||||
klen: uint; val: cstring; vlen: uint) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_writebatch_delete*(a1: ptr leveldb_writebatch_t; key: cstring;
|
||||
klen: csize_t) {.importc.}
|
||||
proc leveldb_writebatch_iterate*(a1: ptr leveldb_writebatch_t; state: pointer; put: proc (
|
||||
a1: pointer; k: cstring; klen: csize_t; v: cstring; vlen: csize_t); deleted: proc (
|
||||
a1: pointer; k: cstring; klen: csize_t)) {.importc.}
|
||||
klen: uint) {.importc, cdecl.}
|
||||
proc leveldb_writebatch_iterate*(a1: ptr leveldb_writebatch_t; state: pointer;
|
||||
put: proc (a1: pointer; k: cstring; klen: uint; v: cstring; vlen: uint) {.
|
||||
cdecl.}; deleted: proc (a1: pointer; k: cstring; klen: uint) {.cdecl.}) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_writebatch_append*(destination: ptr leveldb_writebatch_t;
|
||||
source: ptr leveldb_writebatch_t) {.importc.}
|
||||
## Options
|
||||
|
||||
proc leveldb_options_create*(): ptr leveldb_options_t {.importc.}
|
||||
proc leveldb_options_destroy*(a1: ptr leveldb_options_t) {.importc.}
|
||||
source: ptr leveldb_writebatch_t) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_options_create*(): ptr leveldb_options_t {.importc, cdecl.}
|
||||
proc leveldb_options_destroy*(a1: ptr leveldb_options_t) {.importc, cdecl.}
|
||||
proc leveldb_options_set_comparator*(a1: ptr leveldb_options_t;
|
||||
a2: ptr leveldb_comparator_t) {.importc.}
|
||||
a2: ptr leveldb_comparator_t) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_options_set_filter_policy*(a1: ptr leveldb_options_t;
|
||||
a2: ptr leveldb_filterpolicy_t) {.importc.}
|
||||
proc leveldb_options_set_create_if_missing*(a1: ptr leveldb_options_t; a2: uint8) {.importc.}
|
||||
proc leveldb_options_set_error_if_exists*(a1: ptr leveldb_options_t; a2: uint8) {.importc.}
|
||||
proc leveldb_options_set_paranoid_checks*(a1: ptr leveldb_options_t; a2: uint8) {.importc.}
|
||||
proc leveldb_options_set_env*(a1: ptr leveldb_options_t; a2: ptr leveldb_env_t) {.importc.}
|
||||
a2: ptr leveldb_filterpolicy_t) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_create_if_missing*(a1: ptr leveldb_options_t; a2: uint8) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_error_if_exists*(a1: ptr leveldb_options_t; a2: uint8) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_paranoid_checks*(a1: ptr leveldb_options_t; a2: uint8) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_env*(a1: ptr leveldb_options_t; a2: ptr leveldb_env_t) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_info_log*(a1: ptr leveldb_options_t;
|
||||
a2: ptr leveldb_logger_t) {.importc.}
|
||||
proc leveldb_options_set_write_buffer_size*(a1: ptr leveldb_options_t; a2: csize_t) {.importc.}
|
||||
proc leveldb_options_set_max_open_files*(a1: ptr leveldb_options_t; a2: cint) {.importc.}
|
||||
proc leveldb_options_set_cache*(a1: ptr leveldb_options_t; a2: ptr leveldb_cache_t) {.importc.}
|
||||
proc leveldb_options_set_block_size*(a1: ptr leveldb_options_t; a2: csize_t) {.importc.}
|
||||
proc leveldb_options_set_block_restart_interval*(a1: ptr leveldb_options_t; a2: cint) {.importc.}
|
||||
proc leveldb_options_set_max_file_size*(a1: ptr leveldb_options_t; a2: csize_t) {.importc.}
|
||||
const
|
||||
leveldb_no_compression* = 0
|
||||
leveldb_snappy_compression* = 1
|
||||
|
||||
proc leveldb_options_set_compression*(a1: ptr leveldb_options_t; a2: cint) {.importc.}
|
||||
## Comparator
|
||||
|
||||
proc leveldb_comparator_create*(state: pointer; destructor: proc (a1: pointer); compare: proc (
|
||||
a1: pointer; a: cstring; alen: csize_t; b: cstring; blen: csize_t): cint;
|
||||
name: proc (a1: pointer): cstring): ptr leveldb_comparator_t {.importc.}
|
||||
proc leveldb_comparator_destroy*(a1: ptr leveldb_comparator_t) {.importc.}
|
||||
## Filter policy
|
||||
|
||||
proc leveldb_filterpolicy_create*(state: pointer; destructor: proc (a1: pointer);
|
||||
a2: ptr leveldb_logger_t) {.importc, cdecl.}
|
||||
proc leveldb_options_set_write_buffer_size*(a1: ptr leveldb_options_t; a2: uint) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_max_open_files*(a1: ptr leveldb_options_t; a2: cint) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_cache*(a1: ptr leveldb_options_t;
|
||||
a2: ptr leveldb_cache_t) {.importc, cdecl.}
|
||||
proc leveldb_options_set_block_size*(a1: ptr leveldb_options_t; a2: uint) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_block_restart_interval*(a1: ptr leveldb_options_t;
|
||||
a2: cint) {.importc, cdecl.}
|
||||
proc leveldb_options_set_max_file_size*(a1: ptr leveldb_options_t; a2: uint) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_options_set_compression*(a1: ptr leveldb_options_t; a2: cint) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_comparator_create*(state: pointer;
|
||||
destructor: proc (a1: pointer) {.cdecl.};
|
||||
compare: proc (a1: pointer; a: cstring; alen: uint; b: cstring; blen: uint): cint {.
|
||||
cdecl.}; name: proc (a1: pointer): cstring {.cdecl.}): ptr leveldb_comparator_t {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_comparator_destroy*(a1: ptr leveldb_comparator_t) {.importc, cdecl.}
|
||||
proc leveldb_filterpolicy_create*(state: pointer;
|
||||
destructor: proc (a1: pointer) {.cdecl.};
|
||||
create_filter: proc (a1: pointer; key_array: ptr cstring;
|
||||
key_length_array: ptr csize_t; num_keys: cint;
|
||||
filter_length: ptr csize_t): cstring; key_may_match: proc (
|
||||
a1: pointer; key: cstring; length: csize_t; filter: cstring; filter_length: csize_t): uint8;
|
||||
name: proc (a1: pointer): cstring): ptr leveldb_filterpolicy_t {.importc.}
|
||||
proc leveldb_filterpolicy_destroy*(a1: ptr leveldb_filterpolicy_t) {.importc.}
|
||||
proc leveldb_filterpolicy_create_bloom*(bits_per_key: cint): ptr leveldb_filterpolicy_t {.importc.}
|
||||
## Read options
|
||||
|
||||
proc leveldb_readoptions_create*(): ptr leveldb_readoptions_t {.importc.}
|
||||
proc leveldb_readoptions_destroy*(a1: ptr leveldb_readoptions_t) {.importc.}
|
||||
key_length_array: ptr uint; num_keys: cint;
|
||||
filter_length: ptr uint): cstring {.cdecl.};
|
||||
key_may_match: proc (a1: pointer; key: cstring; length: uint;
|
||||
filter: cstring; filter_length: uint): uint8 {.cdecl.};
|
||||
name: proc (a1: pointer): cstring {.cdecl.}): ptr leveldb_filterpolicy_t {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_filterpolicy_destroy*(a1: ptr leveldb_filterpolicy_t) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_filterpolicy_create_bloom*(bits_per_key: cint): ptr leveldb_filterpolicy_t {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_readoptions_create*(): ptr leveldb_readoptions_t {.importc, cdecl.}
|
||||
proc leveldb_readoptions_destroy*(a1: ptr leveldb_readoptions_t) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_readoptions_set_verify_checksums*(a1: ptr leveldb_readoptions_t;
|
||||
a2: uint8) {.importc.}
|
||||
proc leveldb_readoptions_set_fill_cache*(a1: ptr leveldb_readoptions_t; a2: uint8) {.importc.}
|
||||
a2: uint8) {.importc, cdecl.}
|
||||
proc leveldb_readoptions_set_fill_cache*(a1: ptr leveldb_readoptions_t;
|
||||
a2: uint8) {.importc, cdecl.}
|
||||
proc leveldb_readoptions_set_snapshot*(a1: ptr leveldb_readoptions_t;
|
||||
a2: ptr leveldb_snapshot_t) {.importc.}
|
||||
## Write options
|
||||
|
||||
proc leveldb_writeoptions_create*(): ptr leveldb_writeoptions_t {.importc.}
|
||||
proc leveldb_writeoptions_destroy*(a1: ptr leveldb_writeoptions_t) {.importc.}
|
||||
proc leveldb_writeoptions_set_sync*(a1: ptr leveldb_writeoptions_t; a2: uint8) {.importc.}
|
||||
## Cache
|
||||
|
||||
proc leveldb_cache_create_lru*(capacity: csize_t): ptr leveldb_cache_t {.importc.}
|
||||
proc leveldb_cache_destroy*(cache: ptr leveldb_cache_t) {.importc.}
|
||||
## Env
|
||||
|
||||
proc leveldb_create_default_env*(): ptr leveldb_env_t {.importc.}
|
||||
proc leveldb_env_destroy*(a1: ptr leveldb_env_t) {.importc.}
|
||||
## If not NULL, the returned buffer must be released using leveldb_free().
|
||||
|
||||
proc leveldb_env_get_test_directory*(a1: ptr leveldb_env_t): cstring {.importc.}
|
||||
## Utility
|
||||
## Calls free(ptr).
|
||||
## REQUIRES: ptr was malloc()-ed and returned by one of the routines
|
||||
## in this file. Note that in certain cases (typically on Windows), you
|
||||
## may need to call this routine instead of free(ptr) to dispose of
|
||||
## malloc()-ed memory returned by this library.
|
||||
|
||||
proc leveldb_free*(`ptr`: pointer) {.importc.}
|
||||
## Return the major version number for this release.
|
||||
|
||||
proc leveldb_major_version*(): cint {.importc.}
|
||||
## Return the minor version number for this release.
|
||||
|
||||
proc leveldb_minor_version*(): cint {.importc.}
|
||||
a2: ptr leveldb_snapshot_t) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_writeoptions_create*(): ptr leveldb_writeoptions_t {.importc, cdecl.}
|
||||
proc leveldb_writeoptions_destroy*(a1: ptr leveldb_writeoptions_t) {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_writeoptions_set_sync*(a1: ptr leveldb_writeoptions_t; a2: uint8) {.
|
||||
importc, cdecl.}
|
||||
proc leveldb_cache_create_lru*(capacity: uint): ptr leveldb_cache_t {.importc,
|
||||
cdecl.}
|
||||
proc leveldb_cache_destroy*(cache: ptr leveldb_cache_t) {.importc, cdecl.}
|
||||
proc leveldb_create_default_env*(): ptr leveldb_env_t {.importc, cdecl.}
|
||||
proc leveldb_env_destroy*(a1: ptr leveldb_env_t) {.importc, cdecl.}
|
||||
proc leveldb_env_get_test_directory*(a1: ptr leveldb_env_t): cstring {.importc,
|
||||
cdecl.}
|
||||
## ```
|
||||
## If not NULL, the returned buffer must be released using leveldb_free().
|
||||
## ```
|
||||
proc leveldb_free*(`ptr`: pointer) {.importc, cdecl.}
|
||||
## ```
|
||||
## Utility
|
||||
## Calls free(ptr).
|
||||
## REQUIRES: ptr was malloc()-ed and returned by one of the routines
|
||||
## in this file. Note that in certain cases (typically on Windows), you
|
||||
## may need to call this routine instead of free(ptr) to dispose of
|
||||
## malloc()-ed memory returned by this library.
|
||||
## ```
|
||||
proc leveldb_major_version*(): cint {.importc, cdecl.}
|
||||
## ```
|
||||
## Return the major version number for this release.
|
||||
## ```
|
||||
proc leveldb_minor_version*(): cint {.importc, cdecl.}
|
||||
## ```
|
||||
## Return the minor version number for this release.
|
||||
## ```
|
||||
{.pop.}
|
||||
|
|
Loading…
Reference in New Issue