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_uncompressed(&mut bytes)
10        .map_err(serde::ser::Error::custom)?;
11    s.serialize_bytes(&bytes)
12}
13
14pub fn ark_deserialize<'de, D, A: CanonicalDeserialize>(data: D) -> Result<A, D::Error>
15where
16    D: Deserializer<'de>,
17{
18    let s: Vec<u8> = serde::de::Deserialize::deserialize(data)?;
19    let a = A::deserialize_uncompressed(s.as_slice());
20    a.map_err(serde::de::Error::custom)
21}