use objc::runtime::*;
pub trait IntoRaw {
type Raw: Raw;
fn into_raw(self) -> Self::Raw;
}
pub trait Raw {
unsafe fn from_raw(object: *mut Object) -> Self;
unsafe fn as_raw(&self) -> *mut Object;
unsafe fn from_raw_retain(object: *mut Object) -> Self
where
Self: Sized,
{
Self::from_raw(objc_retain(object))
}
}