extism_pdk/
macros.rs

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}