use super::*;
impl<N: Network> ToFields for Record<N, Plaintext<N>> {
type Field = Field<N>;
fn to_fields(&self) -> Result<Vec<Self::Field>> {
let mut bits_le = self.to_bits_le();
bits_le.push(true);
let fields = bits_le
.chunks(Field::<N>::size_in_data_bits())
.map(Field::<N>::from_bits_le)
.collect::<Result<Vec<_>>>()?;
match fields.len() <= N::MAX_DATA_SIZE_IN_FIELDS as usize {
true => Ok(fields),
false => bail!("Record<Plaintext> exceeds maximum allowed size"),
}
}
}
impl<N: Network> ToFields for Record<N, Ciphertext<N>> {
type Field = Field<N>;
fn to_fields(&self) -> Result<Vec<Self::Field>> {
let mut bits_le = self.to_bits_le();
bits_le.push(true);
let fields = bits_le
.chunks(Field::<N>::size_in_data_bits())
.map(Field::<N>::from_bits_le)
.collect::<Result<Vec<_>>>()?;
match fields.len() <= N::MAX_DATA_SIZE_IN_FIELDS as usize {
true => Ok(fields),
false => bail!("Record<Ciphertext> exceeds maximum allowed size"),
}
}
}