68 lines
1.1 KiB
Rust
68 lines
1.1 KiB
Rust
#![allow(unused_macros)]
|
|
|
|
#[repr(C)]
|
|
pub enum LogLevel {
|
|
Error,
|
|
Warn,
|
|
Info,
|
|
Debug,
|
|
Trace,
|
|
}
|
|
|
|
extern "C" {
|
|
pub fn host_log(log_level: LogLevel, log_message: *const u8, log_message_len: u32);
|
|
}
|
|
|
|
macro_rules! log {
|
|
($a:expr, $b:expr) => {{
|
|
let log_level: LogLevel = $a;
|
|
let log_message: &[u8] = $b;
|
|
|
|
let pointer = log_message.as_ptr();
|
|
|
|
unsafe {
|
|
$crate::logger::host_log(log_level, pointer, log_message.len() as u32);
|
|
}
|
|
}};
|
|
}
|
|
|
|
macro_rules! debug {
|
|
($a:expr) => {
|
|
use crate::logger::{LogLevel::*, *};
|
|
|
|
log!(Debug, $a);
|
|
};
|
|
}
|
|
|
|
macro_rules! error {
|
|
($a:expr) => {
|
|
use crate::logger::{LogLevel::*, *};
|
|
|
|
log!(Error, $a);
|
|
};
|
|
}
|
|
|
|
macro_rules! trace {
|
|
($a:expr) => {
|
|
use crate::logger::*;
|
|
|
|
log!(Trace, $a);
|
|
};
|
|
}
|
|
|
|
macro_rules! warn {
|
|
($a:expr) => {
|
|
use crate::logger::{LogLevel::*, *};
|
|
|
|
log!(Warn, $a);
|
|
};
|
|
}
|
|
|
|
macro_rules! info {
|
|
($a:expr) => {
|
|
use crate::logger::{LogLevel::*, *};
|
|
|
|
log!(Info, $a);
|
|
};
|
|
}
|