Trait rkyv::ArchiveCopy [−][src]
An Archive
type that is a bitwise copy of itself and without additional
processing.
Types that implement ArchiveCopy
are not guaranteed to have a
Serialize
implementation called on them to archive their value.
You can derive an implementation of ArchiveCopy
by adding
#[archive(copy)]
to the struct or enum. Types that implement ArchiveCopy
must also implement Copy
.
ArchiveCopy
must be manually implemented even if a type implements
Archive
and Copy
because some types may
transform their data when writing to an archive.
Examples
use rkyv::{ archived_value, ser::{Serializer, serializers::WriteSerializer}, AlignedVec, Archive, Serialize, }; #[derive(Archive, Serialize, Clone, Copy, Debug, PartialEq)] #[archive(copy)] struct Vector4<T>(T, T, T, T); let mut serializer = WriteSerializer::new(AlignedVec::new()); let value = Vector4(1f32, 2f32, 3f32, 4f32); let pos = serializer.serialize_value(&value) .expect("failed to archive Vector4"); let buf = serializer.into_inner(); let archived_value = unsafe { archived_value::<Vector4<f32>>(buf.as_ref(), pos) }; assert_eq!(&value, archived_value);