pub unsafe trait SharedPointer<T: Pointee + ?Sized> {
// Required methods
fn alloc(metadata: T::Metadata) -> Result<*mut T, LayoutError>;
unsafe fn from_value(ptr: *mut T) -> *mut T;
unsafe fn drop(ptr: *mut T);
}
Expand description
A deserializable shared pointer type.
§Safety
alloc
and from_value
must return pointers which are non-null, writeable,
and properly aligned for T
.
Required Methods§
Sourcefn alloc(metadata: T::Metadata) -> Result<*mut T, LayoutError>
fn alloc(metadata: T::Metadata) -> Result<*mut T, LayoutError>
Allocates space for a value with the given metadata.
Sourceunsafe fn from_value(ptr: *mut T) -> *mut T
unsafe fn from_value(ptr: *mut T) -> *mut T
Creates a new Self
from a pointer to a valid T
.
§Safety
ptr
must have been allocated via alloc
. from_value
must not have
been called on ptr
yet.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.