indy_sys/
logger.rs

1use {CString, CVoid, Error};
2
3extern {
4
5    #[no_mangle]
6    pub fn indy_set_logger(context: *const CVoid,
7                           enabled: Option<EnabledCB>,
8                           log: Option<LogCB>,
9                           flush: Option<FlushCB>) -> Error;
10
11    #[no_mangle]
12    pub fn indy_set_logger_with_max_lvl(context: *const CVoid,
13                                        enabled: Option<EnabledCB>,
14                                        log: Option<LogCB>,
15                                        flush: Option<FlushCB>,
16                                        max_lvl: u32)-> Error;
17
18    #[no_mangle]
19    pub fn indy_set_log_max_lvl(max_lvl: u32) -> Error;
20
21    #[no_mangle]
22    pub fn indy_set_default_logger(pattern: CString) -> Error;
23
24    #[no_mangle]
25    pub fn indy_get_logger(context_p: *mut CVoid,
26                           enabled_cb_p: *mut Option<EnabledCB>,
27                           log_cb_p: *mut Option<LogCB>,
28                           flush_cb_p: *mut Option<FlushCB>) -> Error;
29}
30
31pub type EnabledCB = extern fn(context: *const CVoid,
32                               level: u32,
33                               target: CString) -> bool;
34
35pub type LogCB = extern fn(context: *const CVoid,
36                           level: u32,
37                           target: CString,
38                           message: CString,
39                           module_path: CString,
40                           file: CString,
41                           line: u32);
42
43pub type FlushCB = extern fn(context: *const CVoid);
44