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