Function rkyv::validation::check_archived_value[][src]

pub fn check_archived_value<T: Archive>(
    buf: &[u8],
    pos: usize
) -> Result<&T::Archived, CheckTypeError<T::Archived, DefaultArchiveValidator>> 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_archived_value,
    ser::{Serializer, serializers::AlignedSerializer},
    AlignedVec,
    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 = AlignedSerializer::new(AlignedVec::new());
let pos = serializer.serialize_value(&value)
    .expect("failed to archive test");
let buf = serializer.into_inner();
let archived = check_archived_value::<Example>(buf.as_ref(), pos).unwrap();