libzeropool 0.5.6

zk-SNARK circuit and cryptography for ZeroPool
Documentation
use crate::native::account::*;
use crate::{
    fawkes_crypto::{
        ff_uint::{PrimeField},
        borsh::{BorshSerialize, BorshDeserialize},
    },
};


use std::io::{self, Write};

impl<Fr:PrimeField> BorshSerialize for Account<Fr> {
    fn serialize<W: Write>(&self, writer: &mut W) -> io::Result<()> {
        self.d.serialize(writer)?;
        self.p_d.serialize(writer)?;
        self.i.serialize(writer)?;
        self.b.serialize(writer)?;
        self.e.serialize(writer)
    }
}

impl<Fr:PrimeField> BorshDeserialize for Account<Fr> {
    fn deserialize(buf: &mut &[u8]) -> io::Result<Self> {
        Ok(Self{
            d: BorshDeserialize::deserialize(buf)?,
            p_d: BorshDeserialize::deserialize(buf)?,
            i: BorshDeserialize::deserialize(buf)?,
            b: BorshDeserialize::deserialize(buf)?,
            e: BorshDeserialize::deserialize(buf)?
        })  
    }
}