Struct rkyv::RelPtr [−][src]
pub struct RelPtr<T: ArchivePointee + ?Sized> { /* fields omitted */ }
Expand description
A pointer which resolves to relative to its position in memory.
See Archive
for an example of creating one.
Implementations
impl<T: ArchivePointee + ?Sized> RelPtr<T>
[src]
impl<T: ArchivePointee + ?Sized> RelPtr<T>
[src]pub unsafe fn manual_check_bytes<'a, C: Fallible + ?Sized>(
value: *const RelPtr<T>,
context: &mut C
) -> Result<&'a Self, <T::ArchivedMetadata as CheckBytes<C>>::Error> where
T: CheckBytes<C>,
T::ArchivedMetadata: CheckBytes<C>,
[src]
pub unsafe fn manual_check_bytes<'a, C: Fallible + ?Sized>(
value: *const RelPtr<T>,
context: &mut C
) -> Result<&'a Self, <T::ArchivedMetadata as CheckBytes<C>>::Error> where
T: CheckBytes<C>,
T::ArchivedMetadata: CheckBytes<C>,
[src]Checks the bytes of the given relative pointer.
This is done rather than implementing CheckBytes
to force users to manually write their
CheckBytes
implementation since they need to also provide the ownership model of their
memory.
Safety
The caller must guarantee that the given pointer is aligned and points to enough bytes to
represent a RelPtr<T>
.
impl<T: ArchivePointee + ?Sized> RelPtr<T>
[src]
impl<T: ArchivePointee + ?Sized> RelPtr<T>
[src]pub fn new(raw_ptr: RawRelPtr, metadata: T::ArchivedMetadata) -> Self
[src]
pub fn new(raw_ptr: RawRelPtr, metadata: T::ArchivedMetadata) -> Self
[src]Creates a new relative pointer from the given raw pointer and metadata.
Safety
The caller must guarantee that:
raw_ptr
is a valid relative pointer in its final positionraw_ptr
points to a valid valuemetadata
is valid metadata for the pointed value.
pub fn resolve_emplace<U: ArchiveUnsized<Archived = T> + ?Sized>(
from: usize,
to: usize,
value: &U,
metadata_resolver: U::MetadataResolver,
out: &mut MaybeUninit<Self>
)
[src]
pub fn resolve_emplace<U: ArchiveUnsized<Archived = T> + ?Sized>(
from: usize,
to: usize,
value: &U,
metadata_resolver: U::MetadataResolver,
out: &mut MaybeUninit<Self>
)
[src]Creates a relative pointer from one position to another.
Safety
The caller must guarantee that from
is the position of the relative pointer and to
is
the position of some valid memory.
pub fn metadata(&self) -> &T::ArchivedMetadata
[src]
pub fn metadata(&self) -> &T::ArchivedMetadata
[src]Gets the metadata of the relative pointer.
pub fn as_ptr(&self) -> *const T
[src]
pub fn as_ptr(&self) -> *const T
[src]Calculates the memory address being pointed to by this relative pointer.
pub fn as_mut_ptr(&mut self) -> *mut T
[src]
pub fn as_mut_ptr(&mut self) -> *mut T
[src]Returns an unsafe mutable pointer to the memory address being pointed to by this relative pointer.
Trait Implementations
Auto Trait Implementations
impl<T: ?Sized> RefUnwindSafe for RelPtr<T> where
T: RefUnwindSafe,
<T as ArchivePointee>::ArchivedMetadata: RefUnwindSafe,
T: RefUnwindSafe,
<T as ArchivePointee>::ArchivedMetadata: RefUnwindSafe,
impl<T: ?Sized> Send for RelPtr<T> where
T: Send,
<T as ArchivePointee>::ArchivedMetadata: Send,
T: Send,
<T as ArchivePointee>::ArchivedMetadata: Send,
impl<T: ?Sized> Sync for RelPtr<T> where
T: Sync,
<T as ArchivePointee>::ArchivedMetadata: Sync,
T: Sync,
<T as ArchivePointee>::ArchivedMetadata: Sync,
impl<T> !Unpin for RelPtr<T>
impl<T: ?Sized> UnwindSafe for RelPtr<T> where
T: UnwindSafe,
<T as ArchivePointee>::ArchivedMetadata: UnwindSafe,
T: UnwindSafe,
<T as ArchivePointee>::ArchivedMetadata: UnwindSafe,
Blanket Implementations
impl<T> ArchivePointee for T
[src]
impl<T> ArchivePointee for T
[src]type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
pub fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
[src]
pub fn pointer_metadata(
&<T as ArchivePointee>::ArchivedMetadata
) -> <T as Pointee>::Metadata
[src]Converts some archived metadata to the pointer metadata for itself.
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more