Struct rkyv::boxed::ArchivedBox [−][src]
#[repr(transparent)]pub struct ArchivedBox<T: ArchivePointee + ?Sized>(_);
Implementations
Returns a pinned mutable reference to the value of this archived box
pub unsafe fn resolve_from_ref<U: ArchiveUnsized<Archived = T> + ?Sized>(
value: &U,
pos: usize,
resolver: BoxResolver<U::MetadataResolver>,
out: *mut Self
)
pub unsafe fn resolve_from_ref<U: ArchiveUnsized<Archived = T> + ?Sized>(
value: &U,
pos: usize,
resolver: BoxResolver<U::MetadataResolver>,
out: *mut Self
)
Resolves an archived box from the given value and parameters.
Safety
pos
must be the position ofout
within the archiveresolver
must be the result of serializingvalue
pub fn serialize_from_ref<U, S>(
value: &U,
serializer: &mut S
) -> Result<BoxResolver<U::MetadataResolver>, S::Error> where
U: SerializeUnsized<S, Archived = T> + ?Sized,
S: Fallible + ?Sized,
pub fn serialize_from_ref<U, S>(
value: &U,
serializer: &mut S
) -> Result<BoxResolver<U::MetadataResolver>, S::Error> where
U: SerializeUnsized<S, Archived = T> + ?Sized,
S: Fallible + ?Sized,
Serializes an archived box from the given value and serializer.
pub unsafe fn serialize_copy_from_slice<U, S>(
slice: &[U],
serializer: &mut S
) -> Result<BoxResolver<MetadataResolver<[U]>>, S::Error> where
U: Serialize<S, Archived = T>,
S: Serializer + ?Sized,
pub unsafe fn serialize_copy_from_slice<U, S>(
slice: &[U],
serializer: &mut S
) -> Result<BoxResolver<MetadataResolver<[U]>>, S::Error> where
U: Serialize<S, Archived = T>,
S: Serializer + ?Sized,
Serializes an archived Box
from a given slice by directly copying bytes.
Safety
The type being serialized must be copy-safe. Copy-safe types must be trivially copyable (have the same archived and unarchived representations) and contain no padding bytes. In situations where copying uninitialized bytes the output is acceptable, this function may be used with types that contain padding bytes.
Trait Implementations
impl<T, C> CheckBytes<C> for ArchivedBox<T> where
T: ArchivePointee + CheckBytes<C> + LayoutRaw + Pointee + ?Sized,
C: ArchiveContext + ?Sized,
T::ArchivedMetadata: CheckBytes<C>,
C::Error: Error,
impl<T, C> CheckBytes<C> for ArchivedBox<T> where
T: ArchivePointee + CheckBytes<C> + LayoutRaw + Pointee + ?Sized,
C: ArchiveContext + ?Sized,
T::ArchivedMetadata: CheckBytes<C>,
C::Error: Error,
type Error = CheckOwnedPointerError<T, C>
type Error = CheckOwnedPointerError<T, C>
The error that may result from checking the type.
unsafe fn check_bytes<'a>(
value: *const Self,
context: &mut C
) -> Result<&'a Self, Self::Error>
unsafe fn check_bytes<'a>(
value: *const Self,
context: &mut C
) -> Result<&'a Self, Self::Error>
Checks whether the given pointer points to a valid value within the given context. Read more
impl<T, D> Deserialize<Box<T, Global>, D> for ArchivedBox<T::Archived> where
T: ArchiveUnsized + ?Sized,
T::Archived: DeserializeUnsized<T, D>,
D: Fallible + ?Sized,
impl<T, D> Deserialize<Box<T, Global>, D> for ArchivedBox<T::Archived> where
T: ArchiveUnsized + ?Sized,
T::Archived: DeserializeUnsized<T, D>,
D: Fallible + ?Sized,
impl<T, D> DeserializeWith<ArchivedBox<[<T as Archive>::Archived]>, Box<[T], Global>, D> for CopyOptimize where
T: Archive,
T::Archived: Deserialize<T, D>,
D: Fallible + ?Sized,
impl<T, D> DeserializeWith<ArchivedBox<[<T as Archive>::Archived]>, Box<[T], Global>, D> for CopyOptimize where
T: Archive,
T::Archived: Deserialize<T, D>,
D: Fallible + ?Sized,
impl<T: ArchivePointee + PartialEq<U> + ?Sized, U: ArchivePointee + ?Sized> PartialEq<ArchivedBox<U>> for ArchivedBox<T>
impl<T: ArchivePointee + PartialEq<U> + ?Sized, U: ArchivePointee + ?Sized> PartialEq<ArchivedBox<U>> for ArchivedBox<T>
impl<T: ArchivePointee + PartialEq<U> + ?Sized, U: ?Sized> PartialEq<Box<U, Global>> for ArchivedBox<T>
impl<T: ArchivePointee + PartialEq<U> + ?Sized, U: ?Sized> PartialEq<Box<U, Global>> for ArchivedBox<T>
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
impl<T: ArchivePointee + PartialOrd<U> + ?Sized, U: ?Sized> PartialOrd<Box<U, Global>> for ArchivedBox<T>
impl<T: ArchivePointee + PartialOrd<U> + ?Sized, U: ?Sized> PartialOrd<Box<U, Global>> for ArchivedBox<T>
This method returns an ordering between self
and other
values if one exists. Read more
This method tests less than (for self
and other
) and is used by the <
operator. Read more
This method tests less than or equal to (for self
and other
) and is used by the <=
operator. Read more
This method tests greater than (for self
and other
) and is used by the >
operator. Read more
Auto Trait Implementations
impl<T: ?Sized> RefUnwindSafe for ArchivedBox<T> where
T: RefUnwindSafe,
<T as ArchivePointee>::ArchivedMetadata: RefUnwindSafe,
impl<T: ?Sized> Send for ArchivedBox<T> where
T: Send,
<T as ArchivePointee>::ArchivedMetadata: Send,
impl<T: ?Sized> Sync for ArchivedBox<T> where
T: Sync,
<T as ArchivePointee>::ArchivedMetadata: Sync,
impl<T> !Unpin for ArchivedBox<T>
impl<T: ?Sized> UnwindSafe for ArchivedBox<T> where
T: UnwindSafe,
<T as ArchivePointee>::ArchivedMetadata: UnwindSafe,
Blanket Implementations
type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
Converts some archived metadata to the pointer metadata for itself.
Mutably borrows from an owned value. Read more