pub struct RefAsBox;
Expand description
A wrapper that serializes a reference as if it were boxed.
Unlike Inline
, unsized references can be serialized with RefAsBox
.
References serialized with RefAsBox
cannot be deserialized because the struct cannot own the
deserialized value.
§Example
use rkyv::{Archive, with::RefAsBox};
#[derive(Archive)]
struct Example<'a> {
#[with(RefAsBox)]
a: &'a i32,
#[with(RefAsBox)]
b: &'a str,
}
Trait Implementations§
source§impl<F: ArchiveUnsized + ?Sized> ArchiveWith<&F> for RefAsBox
impl<F: ArchiveUnsized + ?Sized> ArchiveWith<&F> for RefAsBox
§type Archived = ArchivedBox<<F as ArchiveUnsized>::Archived>
type Archived = ArchivedBox<<F as ArchiveUnsized>::Archived>
The archived type of a
With<F, Self>
.§type Resolver = BoxResolver<<F as ArchiveUnsized>::MetadataResolver>
type Resolver = BoxResolver<<F as ArchiveUnsized>::MetadataResolver>
The resolver of a
With<F, Self>
.Auto Trait Implementations§
impl Freeze for RefAsBox
impl RefUnwindSafe for RefAsBox
impl Send for RefAsBox
impl Sync for RefAsBox
impl Unpin for RefAsBox
impl UnwindSafe for RefAsBox
Blanket Implementations§
source§impl<T> ArchivePointee for T
impl<T> ArchivePointee for T
§type ArchivedMetadata = ()
type ArchivedMetadata = ()
The archived version of the pointer metadata for this type.
source§fn pointer_metadata(
_: &<T as ArchivePointee>::ArchivedMetadata,
) -> <T as Pointee>::Metadata
fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata
Converts some archived metadata to the pointer metadata for itself.
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<F, W, T, D> Deserialize<With<T, W>, D> for F
impl<F, W, T, D> Deserialize<With<T, W>, D> for F
source§impl<T> LayoutRaw for T
impl<T> LayoutRaw for T
source§fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>
Gets the layout of the type.