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_root, ser::{Serializer, serializers::AlignedSerializer}, AlignedVec, Archive, Serialize, }; #[derive(Archive, Serialize, Clone, Copy, Debug, PartialEq)] #[archive(copy)] struct Vector4<T>(T, T, T, T); let mut serializer = AlignedSerializer::new(AlignedVec::new()); let value = Vector4(1f32, 2f32, 3f32, 4f32); serializer.serialize_value(&value).expect("failed to archive Vector4"); let buf = serializer.into_inner(); let archived_value = unsafe { archived_root::<Vector4<f32>>(buf.as_ref()) }; assert_eq!(&value, archived_value);
Implementations on Foreign Types
impl ArchiveCopy for RangeFull
[src]
impl ArchiveCopy for RangeFull
[src]impl<T: ?Sized> ArchiveCopy for PhantomData<T>
[src]
impl<T: ?Sized> ArchiveCopy for PhantomData<T>
[src]impl ArchiveCopy for ()
[src]
impl ArchiveCopy for ()
[src]impl ArchiveCopy for bool
[src]
impl ArchiveCopy for bool
[src]impl ArchiveCopy for i8
[src]
impl ArchiveCopy for i8
[src]impl ArchiveCopy for i16
[src]
impl ArchiveCopy for i16
[src]impl ArchiveCopy for i32
[src]
impl ArchiveCopy for i32
[src]impl ArchiveCopy for i64
[src]
impl ArchiveCopy for i64
[src]impl ArchiveCopy for i128
[src]
impl ArchiveCopy for i128
[src]impl ArchiveCopy for u8
[src]
impl ArchiveCopy for u8
[src]impl ArchiveCopy for u16
[src]
impl ArchiveCopy for u16
[src]impl ArchiveCopy for u32
[src]
impl ArchiveCopy for u32
[src]impl ArchiveCopy for u64
[src]
impl ArchiveCopy for u64
[src]impl ArchiveCopy for u128
[src]
impl ArchiveCopy for u128
[src]impl ArchiveCopy for f32
[src]
impl ArchiveCopy for f32
[src]impl ArchiveCopy for f64
[src]
impl ArchiveCopy for f64
[src]impl ArchiveCopy for char
[src]
impl ArchiveCopy for char
[src]impl ArchiveCopy for NonZeroI8
[src]
impl ArchiveCopy for NonZeroI8
[src]impl ArchiveCopy for NonZeroI16
[src]
impl ArchiveCopy for NonZeroI16
[src]impl ArchiveCopy for NonZeroI32
[src]
impl ArchiveCopy for NonZeroI32
[src]impl ArchiveCopy for NonZeroI64
[src]
impl ArchiveCopy for NonZeroI64
[src]impl ArchiveCopy for NonZeroI128
[src]
impl ArchiveCopy for NonZeroI128
[src]impl ArchiveCopy for NonZeroU8
[src]
impl ArchiveCopy for NonZeroU8
[src]impl ArchiveCopy for NonZeroU16
[src]
impl ArchiveCopy for NonZeroU16
[src]impl ArchiveCopy for NonZeroU32
[src]
impl ArchiveCopy for NonZeroU32
[src]impl ArchiveCopy for NonZeroU64
[src]
impl ArchiveCopy for NonZeroU64
[src]impl ArchiveCopy for NonZeroU128
[src]
impl ArchiveCopy for NonZeroU128
[src]impl<T11: ArchiveCopy, T10: ArchiveCopy, T9: ArchiveCopy, T8: ArchiveCopy, T7: ArchiveCopy, T6: ArchiveCopy, T5: ArchiveCopy, T4: ArchiveCopy, T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T11, T10, T9, T8, T7, T6, T5, T4, T3, T2, T1, T0)
[src]
impl<T11: ArchiveCopy, T10: ArchiveCopy, T9: ArchiveCopy, T8: ArchiveCopy, T7: ArchiveCopy, T6: ArchiveCopy, T5: ArchiveCopy, T4: ArchiveCopy, T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T11, T10, T9, T8, T7, T6, T5, T4, T3, T2, T1, T0)
[src]impl<T10: ArchiveCopy, T9: ArchiveCopy, T8: ArchiveCopy, T7: ArchiveCopy, T6: ArchiveCopy, T5: ArchiveCopy, T4: ArchiveCopy, T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T10, T9, T8, T7, T6, T5, T4, T3, T2, T1, T0)
[src]
impl<T10: ArchiveCopy, T9: ArchiveCopy, T8: ArchiveCopy, T7: ArchiveCopy, T6: ArchiveCopy, T5: ArchiveCopy, T4: ArchiveCopy, T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T10, T9, T8, T7, T6, T5, T4, T3, T2, T1, T0)
[src]impl<T9: ArchiveCopy, T8: ArchiveCopy, T7: ArchiveCopy, T6: ArchiveCopy, T5: ArchiveCopy, T4: ArchiveCopy, T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T9, T8, T7, T6, T5, T4, T3, T2, T1, T0)
[src]
impl<T9: ArchiveCopy, T8: ArchiveCopy, T7: ArchiveCopy, T6: ArchiveCopy, T5: ArchiveCopy, T4: ArchiveCopy, T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T9, T8, T7, T6, T5, T4, T3, T2, T1, T0)
[src]impl<T8: ArchiveCopy, T7: ArchiveCopy, T6: ArchiveCopy, T5: ArchiveCopy, T4: ArchiveCopy, T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T8, T7, T6, T5, T4, T3, T2, T1, T0)
[src]
impl<T8: ArchiveCopy, T7: ArchiveCopy, T6: ArchiveCopy, T5: ArchiveCopy, T4: ArchiveCopy, T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T8, T7, T6, T5, T4, T3, T2, T1, T0)
[src]impl<T7: ArchiveCopy, T6: ArchiveCopy, T5: ArchiveCopy, T4: ArchiveCopy, T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T7, T6, T5, T4, T3, T2, T1, T0)
[src]
impl<T7: ArchiveCopy, T6: ArchiveCopy, T5: ArchiveCopy, T4: ArchiveCopy, T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T7, T6, T5, T4, T3, T2, T1, T0)
[src]impl<T6: ArchiveCopy, T5: ArchiveCopy, T4: ArchiveCopy, T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T6, T5, T4, T3, T2, T1, T0)
[src]
impl<T6: ArchiveCopy, T5: ArchiveCopy, T4: ArchiveCopy, T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T6, T5, T4, T3, T2, T1, T0)
[src]impl<T5: ArchiveCopy, T4: ArchiveCopy, T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T5, T4, T3, T2, T1, T0)
[src]
impl<T5: ArchiveCopy, T4: ArchiveCopy, T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T5, T4, T3, T2, T1, T0)
[src]impl<T4: ArchiveCopy, T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T4, T3, T2, T1, T0)
[src]
impl<T4: ArchiveCopy, T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T4, T3, T2, T1, T0)
[src]impl<T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T3, T2, T1, T0)
[src]
impl<T3: ArchiveCopy, T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T3, T2, T1, T0)
[src]impl<T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T2, T1, T0)
[src]
impl<T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T2, T1, T0)
[src]impl<T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T1, T0)
[src]
impl<T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T1, T0)
[src]impl<T0: ArchiveCopy> ArchiveCopy for (T0,)
[src]
impl<T0: ArchiveCopy> ArchiveCopy for (T0,)
[src]impl<T: ArchiveCopy, const N: usize> ArchiveCopy for [T; N]
[src]
impl<T: ArchiveCopy, const N: usize> ArchiveCopy for [T; N]
[src]