1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
#[macro_export]
macro_rules! write_error_log {
($writer:expr) => {
extern "C" {
fn set_error_log(p: *const u8, len: i32);
}
let log = serde_json::json!({
"crate": std::env!("CARGO_CRATE_NAME"),
"message": &$writer
});
let log = serde_json::to_vec(&log).unwrap_or_default();
unsafe {
set_error_log(log.as_ptr(), log.len() as i32);
}
};
}