Trait foreign_types::ForeignType
source · pub unsafe trait ForeignType: Sized {
type CType;
type Ref: ForeignTypeRef<CType = Self::CType>;
// Required methods
unsafe fn from_ptr(ptr: *mut Self::CType) -> Self;
fn as_ptr(&self) -> *mut Self::CType;
// Provided method
fn into_ptr(self) -> *mut Self::CType { ... }
}
Expand description
A type implemented by wrappers over foreign types.
Safety
Implementations of ForeignType
must guarantee the following:
Self::from_ptr(x).as_ptr() == x
Self::from_ptr(x).into_ptr(x) == x
Self::from_ptr(x).deref().as_ptr(x) == x
Self::from_ptr(x).deref_mut().as_ptr(x) == x
Self::from_ptr(x).as_ref().as_ptr(x) == x
Self::from_ptr(x).as_mut().as_ptr(x) == x
Required Associated Types§
sourcetype Ref: ForeignTypeRef<CType = Self::CType>
type Ref: ForeignTypeRef<CType = Self::CType>
The type representing a reference to this type.