[−][src]Function rkyv::validation::check_archive
pub fn check_archive<'a, T: Archive>(
buf: &[u8],
pos: usize
) -> Result<&'a T::Archived, CheckArchiveError<<T::Archived as CheckBytes<ArchiveContext>>::Error>> where
T::Archived: CheckBytes<ArchiveContext>,
Checks the given archive at the given position for an archived version of the given type.
This is a safe alternative to archived_value
for types that implement
CheckBytes
.
Example
use rkyv::{Aligned, Archive, ArchiveBuffer, check_archive, Write}; use bytecheck::CheckBytes; #[derive(Archive)] #[archive(derive(CheckBytes))] struct Example { name: String, value: i32, } let value = Example { name: "pi".to_string(), value: 31415926, }; let mut writer = ArchiveBuffer::new(Aligned([0u8; 256])); let pos = writer.archive(&value) .expect("failed to archive test"); let buf = writer.into_inner(); let archived = check_archive::<Example>(buf.as_ref(), pos).unwrap();