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
use cassandra_sys::CassLogLevel;
use cassandra_sys::CassLogMessage;
use cassandra_sys::cass_log_level_string;
use cassandra_sys::cass_log_set_callback;
use cassandra_sys::cass_log_set_level;
use std::ffi::CStr;
use std::os::raw;
#[repr(C)]
#[derive(Debug)]
pub struct LogLevel(CassLogLevel);
impl LogLevel {
pub fn as_string(&self) -> String {
unsafe { CStr::from_ptr(cass_log_level_string(self.0)).to_str().expect("must be utf8").to_owned() }
}
}
pub type CassLogCallback = Option<unsafe extern "C" fn(message: *const CassLogMessage, data: *mut raw::c_void)>;
pub fn set_level(level: LogLevel) { unsafe { cass_log_set_level(level.0) } }
pub fn set_callback(callback: CassLogCallback, mut data: Vec<u8>) {
unsafe { cass_log_set_callback(callback, &mut data as *mut _ as *mut raw::c_void) }
}