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