libzeropool_zkbob/native/borsh/
note.rs

1use crate::native::note::*;
2use fawkes_crypto::ff_uint::PrimeField;
3use crate::fawkes_crypto::borsh::{BorshSerialize, BorshDeserialize};
4use std::io::{self, Write};
5
6
7impl<Fr:PrimeField> BorshSerialize for Note<Fr> {
8    fn serialize<W: Write>(&self, writer: &mut W) -> io::Result<()> {
9        self.d.serialize(writer)?;
10        self.p_d.serialize(writer)?;
11        self.b.serialize(writer)?;
12        self.t.serialize(writer)
13    }
14}
15
16impl<Fr:PrimeField> BorshDeserialize for Note<Fr> {
17    fn deserialize(buf: &mut &[u8]) -> io::Result<Self> {
18        Ok(Self{
19            d: BorshDeserialize::deserialize(buf)?,
20            p_d: BorshDeserialize::deserialize(buf)?,
21            b: BorshDeserialize::deserialize(buf)?,
22            t: BorshDeserialize::deserialize(buf)?
23        })  
24    }
25}