1#![no_std]
5
6extern crate alloc;
7
8use rkyv::ser::serializers::AllocSerializer;
9use rkyv::ser::Serializer;
10use rkyv::Serialize;
11use alloc::vec::Vec;
12
13pub struct RkyvCodec;
14
15impl RkyvCodec {
16 pub fn encode<T>(item: &T) -> Result<Vec<u8>, &'static str>
17 where
18 T: Serialize<AllocSerializer<1024>>,
19 {
20 let mut serializer = AllocSerializer::<1024>::default();
21 serializer.serialize_value(item).map_err(|_| "Serialization failed")?;
22 Ok(serializer.into_serializer().into_inner().into_vec())
23 }
24}