libzeropool 0.5.6

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


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

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