pub use ptr_meta::DynMetadata;
pub use ptr_meta::Pointee;
pub use ptr_meta::from_raw_parts_mut;
pub use ptr_meta::to_raw_parts_mut;
#[macro_export]
macro_rules! impl_from_impl {
(dyn $($rest:tt)*) => {
#[allow(unused_parens)]
unsafe impl<'a, T> $crate::FromImpl<T> for (dyn $($rest)* + 'a)
where T: $($rest)* + 'a {
fn from_impl(value: &T) -> &Self { value }
fn from_impl_mut(value: &mut T) -> &mut Self { value }
}
};
}
impl_from_impl!(dyn core::any::Any);
impl_from_impl!(dyn core::any::Any + Send);
impl_from_impl!(dyn core::any::Any + Send + Sync);
impl_from_impl!(dyn core::error::Error);
impl_from_impl!(dyn core::error::Error + Send);
impl_from_impl!(dyn core::error::Error + Send + Sync);