use crate::InferenceError;
pub(crate) type Result<T> = std::result::Result<T, InferenceError>;
#[macro_export]
macro_rules! cstr {
($str: expr) => {
std::ffi::CString::new($str)
.expect("a valid C string")
.into_raw()
};
}
#[macro_export]
macro_rules! try_unsafe {
($e: expr) => {
$crate::InferenceError::from(unsafe { $e })
};
}
#[macro_export]
macro_rules! drop_using_function {
($ty: ty, $free_fn: expr) => {
impl Drop for $ty {
fn drop(&mut self) {
unsafe { $free_fn(&mut self.instance as *mut *mut _) }
debug_assert!(self.instance.is_null())
}
}
};
}