Function rkyv::validation::check_archive[][src]

pub fn check_archive<T: Archive>(
    buf: &[u8],
    pos: usize
) -> Result<&T::Archived, CheckArchiveError<<T::Archived as CheckBytes<DefaultArchiveValidator>>::Error, <DefaultArchiveValidator as Fallible>::Error>> where
    T::Archived: CheckBytes<DefaultArchiveValidator>, 

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::{
    check_archive,
    ser::{Serializer, serializers::WriteSerializer},
    Archive,
    Serialize,
};
use bytecheck::CheckBytes;

#[derive(Archive, Serialize)]
#[archive(derive(CheckBytes))]
struct Example {
    name: String,
    value: i32,
}

let value = Example {
    name: "pi".to_string(),
    value: 31415926,
};

let mut serializer = WriteSerializer::new(Vec::new());
let pos = serializer.serialize_value(&value)
    .expect("failed to archive test");
let buf = serializer.into_inner();
let archived = check_archive::<Example>(buf.as_ref(), pos).unwrap();