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
use crate::ffi::{self, ToFfi};

pub enum Level {
    Debug,
    Info,
    Warn,
    Error,
}

pub fn write(level: Level, message: impl AsRef<str>) {
    let level = match level {
        Level::Debug => 0,
        Level::Info => 1,
        Level::Warn => 2,
        Level::Error => 3,
    };

    unsafe {
        ffi::write_log(level, message.as_ref().to_ffi());
    }
}

// impl ToFfi for Level {
//     type FfiType = i32;
//     fn to_ffi(self) -> i32 {
//         match self {
//             Level::Debug => 0,
//             Level::Info => 1,
//             Level::Warn => 2,
//             Level::Error => 3,
//         }
//     }
// }