use std::mem;
#[inline]
pub(crate) fn raw_to<T>(value: T) -> *mut T {
Box::into_raw(Box::new(value))
}
#[inline]
pub(crate) fn drop_raw<T>(raw: *mut T) {
mem::drop(unsafe { Box::from_raw(raw) })
}
#[macro_export]
macro_rules! as_ref {
( $name:expr ) => {{
unsafe { $name.as_ref() }.ok_or(::anyhow::anyhow!(concat!(
stringify!($name),
" is null"
)))?
}};
}
#[macro_export]
macro_rules! as_mut {
( $name:expr ) => {{
unsafe { $name.as_mut() }.ok_or(::anyhow::anyhow!(concat!(
stringify!($name),
" is null"
)))?
}};
}