#[cfg(feature = "error_strings")]
#[doc(hidden)]
#[macro_export]
macro_rules! call_site {
() => {{
concat!(file!(), ":", line!())
}};
}
#[cfg(not(feature = "error_strings"))]
#[doc(hidden)]
#[macro_export]
macro_rules! call_site {
() => {{
"call_site information not enabled"
}};
}
#[doc(hidden)]
#[macro_export]
macro_rules! error {
($code:expr) => {{
use crate::libssl::err::MesalinkError;
MesalinkError::new($code, call_site!())
}};
}
#[doc(hidden)]
#[macro_export]
macro_rules! check_inner_result {
($inner:expr, $err_ret:expr) => {{
use crate::libssl::err::{ErrorQueue, MesalinkBuiltinError};
use std::panic;
match panic::catch_unwind(panic::AssertUnwindSafe(|| $inner))
.unwrap_or_else(|_| Err(error!(MesalinkBuiltinError::Panic.into())))
{
Ok(r) => r,
Err(e) => {
ErrorQueue::push_error(e);
$err_ret
}
}
}};
}