Trait rkyv::ArchiveCopy[][src]

pub unsafe trait ArchiveCopy: Archive<Archived = Self> + Copy { }

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);

Implementations on Foreign Types

impl ArchiveCopy for RangeFull[src]

impl<T: ?Sized> ArchiveCopy for PhantomData<T>[src]

impl ArchiveCopy for ()[src]

impl ArchiveCopy for bool[src]

impl ArchiveCopy for i8[src]

impl ArchiveCopy for i16[src]

impl ArchiveCopy for i32[src]

impl ArchiveCopy for i64[src]

impl ArchiveCopy for i128[src]

impl ArchiveCopy for u8[src]

impl ArchiveCopy for u16[src]

impl ArchiveCopy for u32[src]

impl ArchiveCopy for u64[src]

impl ArchiveCopy for u128[src]

impl ArchiveCopy for f32[src]

impl ArchiveCopy for f64[src]

impl ArchiveCopy for char[src]

impl ArchiveCopy for NonZeroI8[src]

impl ArchiveCopy for NonZeroI16[src]

impl ArchiveCopy for NonZeroI32[src]

impl ArchiveCopy for NonZeroI64[src]

impl ArchiveCopy for NonZeroI128[src]

impl ArchiveCopy for NonZeroU8[src]

impl ArchiveCopy for NonZeroU16[src]

impl ArchiveCopy for NonZeroU32[src]

impl ArchiveCopy for NonZeroU64[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<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<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<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<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<T2: ArchiveCopy, T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T2, T1, T0)[src]

impl<T1: ArchiveCopy, T0: ArchiveCopy> ArchiveCopy for (T1, T0)[src]

impl<T0: ArchiveCopy> ArchiveCopy for (T0,)[src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 31][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 30][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 29][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 28][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 27][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 26][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 25][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 24][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 23][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 22][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 21][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 20][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 19][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 18][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 17][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 16][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 15][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 14][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 13][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 12][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 11][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 10][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 9][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 8][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 7][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 6][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 5][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 4][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 3][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 2][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 1][src]

impl<T: ArchiveCopy> ArchiveCopy for [T; 0][src]

Loading content...

Implementors

Loading content...