fix macro refs

This commit is contained in:
numzero 2026-05-07 22:11:47 +03:00
parent b63cf70799
commit 5c5fc00fd1

View File

@ -92,14 +92,19 @@ impl OwnRef<'_, dyn Any> {
}
}
#[doc(hidden)]
pub mod _refs {
pub use std::mem::ManuallyDrop;
}
#[macro_export]
macro_rules! _to_ptr_own_ref {
($var:ident) => { $crate::_to_ptr_own_ref!(# $var) };
(mut $var:ident) => { $crate::_to_ptr_own_ref!(mut # $var) };
($($mut:ident)? # $var:ident) => {
let mut $var = ManuallyDrop::new($var);
let $($mut)? $var = unsafe { OwnRef::from_manually_drop(&mut $var) };
let mut $var = $crate::ptr::_refs::ManuallyDrop::new($var);
let $($mut)? $var = unsafe { $crate::ptr::OwnRef::from_manually_drop(&mut $var) };
};
}