[][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();