Trait Restructure
pub unsafe trait Restructure<T>: Destructurewhere
T: ?Sized,{
type Restructured;
// Required method
unsafe fn restructure(&self, ptr: *mut T) -> Self::Restructured;
}
Available on crate feature
dep_rkyv
only.Expand description
A type that can be “restructured” as a field of some containing type.
See the crate docs for an example of implementing
Destructure
and Restructure
.
§Safety
restructure
must return a valid
Restructured
that upholds the invariants for
its Destructuring
:
Required Associated Types§
type Restructured
type Restructured
The restructured version of this type.
Required Methods§
unsafe fn restructure(&self, ptr: *mut T) -> Self::Restructured
unsafe fn restructure(&self, ptr: *mut T) -> Self::Restructured
Restructures a pointer to this type into the target type.
§Safety
ptr
must be a properly aligned pointer to a subfield of the pointer
underlying
self
.
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.