1#[macro_export]
2macro_rules! log {
3 ($lvl:expr, $($arg:tt)+) => {{
4 let level = unsafe { $crate::extism::get_log_level() };
5 if $lvl.to_int() >= level && level != i32::MAX {
6 let fmt = format!($($arg)+);
7 let memory = $crate::Memory::from_bytes(&fmt).unwrap();
8 memory.log($lvl)
9 }
10 }}
11}
12
13#[macro_export]
14macro_rules! info {
15 ($($arg:tt)+) => {
16 $crate::log!($crate::LogLevel::Info, $($arg)+)
17 }
18}
19
20#[macro_export]
21macro_rules! debug {
22 ($($arg:tt)+) => {
23 $crate::log!($crate::LogLevel::Debug, $($arg)+)
24 }
25}
26
27#[macro_export]
28macro_rules! warn {
29 ($($arg:tt)+) => {
30 $crate::log!($crate::LogLevel::Warn, $($arg)+)
31 }
32}
33
34#[macro_export]
35macro_rules! error {
36 ($($arg:tt)+) => {
37 $crate::log!($crate::LogLevel::Error, $($arg)+)
38 }
39}
40
41#[macro_export]
42macro_rules! trace {
43 ($($arg:tt)+) => {
44 $crate::log!($crate::LogLevel::Trace, $($arg)+)
45 }
46}
47
48#[macro_export]
49macro_rules! unwrap {
50 ($x:expr) => {
51 match $x {
52 Ok(x) => x,
53 Err(e) => {
54 let err = format!("{:?}", e);
55 let mut mem = $crate::Memory::from_bytes(&err).unwrap();
56 unsafe {
57 $crate::extism::error_set(mem.offset());
58 }
59 return -1;
60 }
61 }
62 };
63}
64
65#[macro_export]
66macro_rules! set_var {
67 ($k:expr, $($arg:tt)+) => {
68 $crate::var::set($k, &format!($($arg)+))
69 };
70}