1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
pub use self::os::{datum};
pub use self::os::DBM;
pub use self::os::{DBM_INSERT};
pub use self::os::{DBM_REPLACE};

use {NTStr, int_t, char_t};

#[cfg(target_os = "linux")]
#[path = "linux/mod.rs"]
mod os;

pub fn dbm_open<T: NTStr>(file: &T, flags: int_t, mode: int_t) -> *mut DBM {
    extern { fn dbm_open(file: *const char_t, flags: int_t, mode: int_t) -> *mut DBM; }
    unsafe { dbm_open(file.as_ptr(), flags, mode) }
}

pub fn dbm_close(dbf: *mut DBM) {
    extern { fn dbm_close(dbf: *mut DBM); }
    unsafe { dbm_close(dbf) }
}

pub fn dbm_fetch(dbf: *mut DBM, key: datum) -> datum {
    extern { fn dbm_fetch(dbf: *mut DBM, key: datum) -> datum; }
    unsafe { dbm_fetch(dbf, key) }
}

pub fn dbm_store(dbf: *mut DBM, key: datum, content: datum, flags: int_t) -> int_t {
    extern { fn dbm_store(dbf: *mut DBM, key: datum, content: datum,
                          flags: int_t) -> int_t; }
    unsafe { dbm_store(dbf, key, content, flags) }
}

pub fn dbm_delete(dbf: *mut DBM, key: datum) -> int_t {
    extern { fn dbm_delete(dbf: *mut DBM, key: datum) -> int_t; }
    unsafe { dbm_delete(dbf, key) }
}

pub fn dbm_firstkey(dbf: *mut DBM) -> datum {
    extern { fn dbm_firstkey(dbf: *mut DBM) -> datum; }
    unsafe { dbm_firstkey(dbf) }
}

pub fn dbm_nextkey(dbf: *mut DBM) -> datum {
    extern { fn dbm_nextkey(dbf: *mut DBM) -> datum; }
    unsafe { dbm_nextkey(dbf) }
}

pub fn dbm_error(dbf: *mut DBM) -> int_t {
    extern { fn dbm_error(dbf: *mut DBM) -> int_t; }
    unsafe { dbm_error(dbf) }
}

pub fn dbm_clearerr(dbf: *mut DBM) {
    extern { fn dbm_clearerr(dbf: *mut DBM); }
    unsafe { dbm_clearerr(dbf) }
}