wfrs_model/
lib.rs

1use rkyv::ser::serializers::AllocSerializer;
2use rkyv::ser::Serializer;
3use rkyv::{AlignedVec, Deserialize};
4
5pub mod jsep;
6pub mod json;
7mod model;
8pub use model::*;
9
10pub fn serialize(workflow: WorkflowDefinition) -> AlignedVec {
11    let mut serializer = AllocSerializer::<0>::default();
12    serializer.serialize_value(&workflow).unwrap();
13    serializer.into_serializer().into_inner()
14}
15
16pub fn deserialize(
17    data: &[u8],
18) -> Result<WorkflowDefinition, rkyv::de::deserializers::SharedDeserializeMapError> {
19    let archived = unsafe { rkyv::archived_root::<WorkflowDefinition>(data) };
20    archived.deserialize(&mut rkyv::de::deserializers::SharedDeserializeMap::default())
21}