fruity 0.3.0

Rusty bindings for Apple libraries
Documentation
#[allow(unused)]
macro_rules! cf_bridge {
    ($a:ty, $b:ty) => {
        cf_bridge!(@ $a => $b);
        cf_bridge!(@ $b => $a);
    };
    (@ $a:ty => $b:ty) => {
        impl From<crate::core::Arc<$a>> for crate::core::Arc<$b> {
            #[inline]
            fn from(bridged: crate::core::Arc<$a>) -> Self {
                unsafe { crate::core::Arc::cast_unchecked(bridged) }
            }
        }

        impl AsRef<$b> for $a {
            #[inline]
            fn as_ref(&self) -> &$b {
                unsafe { &*(self as *const $a as *const $b) }
            }
        }

        impl AsMut<$b> for $a {
            #[inline]
            fn as_mut(&mut self) -> &mut $b {
                unsafe { &mut *(self as *mut $a as *mut $b) }
            }
        }
    };
}