diff options
| author | Estevan Castilho <tevo@riajuu.net> | 2026-04-23 02:05:25 +0000 |
|---|---|---|
| committer | Estevan Castilho <tevo@riajuu.net> | 2026-04-30 00:04:34 +0000 |
| commit | 0d5e71c5bb3a3fdb13d378358e01b7d75f8e14b1 (patch) | |
| tree | f77c92191c64581018a2e35cf0b0a1c28b63d8b3 /lib/external/lmdb.ml | |
| parent | 35c7bf1ff874b0a75b810cf889692656d97abf76 (diff) | |
| download | Sakura-0d5e71c5bb3a3fdb13d378358e01b7d75f8e14b1.tar.gz Sakura-0d5e71c5bb3a3fdb13d378358e01b7d75f8e14b1.zip | |
Some LMDB bindings
Diffstat (limited to 'lib/external/lmdb.ml')
| -rw-r--r-- | lib/external/lmdb.ml | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/lib/external/lmdb.ml b/lib/external/lmdb.ml new file mode 100644 index 0000000..d2e6be0 --- /dev/null +++ b/lib/external/lmdb.ml @@ -0,0 +1,24 @@ +open Ctypes +open PosixTypes +open Foreign + +type mdb_result = Success | Failure of int + +let mdb_result_of_int = function + | 0 -> Success + | x -> Failure x + +let int_of_mdb_result = function + | Success -> 0 + | Failure x -> x + +let mdb_mode_t = mode_t + +let mdb_result = view ~read:mdb_result_of_int ~write:int_of_mdb_result int + +let mdb_env = ptr Void + +let mdb_env_create = foreign "mdb_env_create" (ptr mdb_env @-> returning mdb_result) + +let mdb_env_open = foreign "mdb_env_open" (ptr mdb_env @-> string @-> uint @-> mdb_mode_t @-> returning mdb_result) +let mdb_env_close = foreign "mdb_env_close" (ptr mdb_env @-> returning Void) |
