heed/mdb/
lmdb_ffi.rs

1use std::ptr;
2
3pub use ffi::{
4    mdb_cursor_close, mdb_cursor_del, mdb_cursor_get, mdb_cursor_open, mdb_cursor_put,
5    mdb_dbi_open, mdb_del, mdb_drop, mdb_env_close, mdb_env_copyfd2, mdb_env_create,
6    mdb_env_get_fd, mdb_env_get_flags, mdb_env_get_maxkeysize, mdb_env_info, mdb_env_open,
7    mdb_env_set_flags, mdb_env_set_mapsize, mdb_env_set_maxdbs, mdb_env_set_maxreaders,
8    mdb_env_stat, mdb_env_sync, mdb_filehandle_t, mdb_get, mdb_put, mdb_reader_check,
9    mdb_set_compare, mdb_stat, mdb_txn_abort, mdb_txn_begin, mdb_txn_commit, mdb_version,
10    MDB_cursor, MDB_dbi, MDB_env, MDB_stat, MDB_txn, MDB_val, MDB_CP_COMPACT, MDB_CURRENT,
11    MDB_RDONLY, MDB_RESERVE,
12};
13use lmdb_master_sys as ffi;
14
15pub mod cursor_op {
16    use super::ffi::{self, MDB_cursor_op};
17
18    pub const MDB_FIRST: MDB_cursor_op = ffi::MDB_FIRST;
19    pub const MDB_FIRST_DUP: MDB_cursor_op = ffi::MDB_FIRST_DUP;
20    pub const MDB_LAST: MDB_cursor_op = ffi::MDB_LAST;
21    pub const MDB_LAST_DUP: MDB_cursor_op = ffi::MDB_LAST_DUP;
22    pub const MDB_SET_RANGE: MDB_cursor_op = ffi::MDB_SET_RANGE;
23    pub const MDB_SET: MDB_cursor_op = ffi::MDB_SET;
24    pub const MDB_PREV: MDB_cursor_op = ffi::MDB_PREV;
25    pub const MDB_PREV_NODUP: MDB_cursor_op = ffi::MDB_PREV_NODUP;
26    pub const MDB_PREV_DUP: MDB_cursor_op = ffi::MDB_PREV_DUP;
27    pub const MDB_NEXT: MDB_cursor_op = ffi::MDB_NEXT;
28    pub const MDB_NEXT_NODUP: MDB_cursor_op = ffi::MDB_NEXT_NODUP;
29    pub const MDB_NEXT_DUP: MDB_cursor_op = ffi::MDB_NEXT_DUP;
30    pub const MDB_GET_CURRENT: MDB_cursor_op = ffi::MDB_GET_CURRENT;
31}
32
33pub fn reserve_size_val(size: usize) -> ffi::MDB_val {
34    ffi::MDB_val { mv_size: size, mv_data: ptr::null_mut() }
35}
36
37pub unsafe fn into_val(value: &[u8]) -> ffi::MDB_val {
38    ffi::MDB_val { mv_data: value.as_ptr() as *mut libc::c_void, mv_size: value.len() }
39}
40
41pub unsafe fn from_val<'a>(value: ffi::MDB_val) -> &'a [u8] {
42    std::slice::from_raw_parts(value.mv_data as *const u8, value.mv_size)
43}