vrf/
serialize.rs

1use ark_serialize::{CanonicalDeserialize, CanonicalSerialize};
2use serde::{de::Deserializer, Serializer};
3
4pub fn ark_serialize<S, A: CanonicalSerialize>(a: &A, s: S) -> Result<S::Ok, S::Error>
5where
6    S: Serializer,
7{
8    let mut bytes = vec![];
9    a.serialize(&mut bytes).map_err(serde::ser::Error::custom)?;
10    s.serialize_bytes(&bytes)
11}
12
13pub fn ark_deserialize<'de, D, A: CanonicalDeserialize>(data: D) -> Result<A, D::Error>
14where
15    D: Deserializer<'de>,
16{
17    let s: Vec<u8> = serde::de::Deserialize::deserialize(data)?;
18    let a = A::deserialize(s.as_slice());
19    a.map_err(serde::de::Error::custom)
20}