use super::*;
impl<A: Aleo> ToBits for Record<A, Plaintext<A>> {
type Boolean = Boolean<A>;
fn write_bits_le(&self, vec: &mut Vec<Self::Boolean>) {
let mut data_bits_le = vec![];
for (identifier, entry) in &self.data {
identifier.write_bits_le(&mut data_bits_le);
entry.write_bits_le(&mut data_bits_le);
}
self.owner.write_bits_le(vec);
U32::constant(console::U32::new(data_bits_le.len() as u32)).write_bits_le(vec);
vec.extend_from_slice(&data_bits_le);
self.nonce.write_bits_le(vec);
}
fn write_bits_be(&self, vec: &mut Vec<Self::Boolean>) {
let mut data_bits_be = vec![];
for (identifier, entry) in &self.data {
identifier.write_bits_be(&mut data_bits_be);
entry.write_bits_be(&mut data_bits_be);
}
self.owner.write_bits_be(vec);
U32::constant(console::U32::new(data_bits_be.len() as u32)).write_bits_be(vec);
vec.extend_from_slice(&data_bits_be);
self.nonce.write_bits_be(vec);
}
}
impl<A: Aleo> ToBits for Record<A, Ciphertext<A>> {
type Boolean = Boolean<A>;
fn write_bits_le(&self, vec: &mut Vec<Self::Boolean>) {
let mut data_bits_le = vec![];
for (identifier, entry) in &self.data {
identifier.write_bits_le(&mut data_bits_le);
entry.write_bits_le(&mut data_bits_le);
}
self.owner.write_bits_le(vec);
U32::constant(console::U32::new(data_bits_le.len() as u32)).write_bits_le(vec);
vec.extend_from_slice(&data_bits_le);
self.nonce.write_bits_le(vec);
}
fn write_bits_be(&self, vec: &mut Vec<Self::Boolean>) {
let mut data_bits_be = vec![];
for (identifier, entry) in &self.data {
identifier.write_bits_be(&mut data_bits_be);
entry.write_bits_be(&mut data_bits_be);
}
self.owner.write_bits_be(vec);
U32::constant(console::U32::new(data_bits_be.len() as u32)).write_bits_be(vec);
vec.extend_from_slice(&data_bits_be);
self.nonce.write_bits_be(vec);
}
}