snarkvm_circuit_program/data/record/
to_bits.rs1use super::*;
17
18impl<A: Aleo> ToBits for Record<A, Plaintext<A>> {
19 type Boolean = Boolean<A>;
20
21 fn write_bits_le(&self, vec: &mut Vec<Self::Boolean>) {
23 let mut data_bits_le = vec![];
25 for (identifier, entry) in &self.data {
26 identifier.write_bits_le(&mut data_bits_le);
27 entry.write_bits_le(&mut data_bits_le);
28 }
29
30 self.owner.write_bits_le(vec);
32 U32::constant(console::U32::new(data_bits_le.len() as u32)).write_bits_le(vec);
33 vec.extend_from_slice(&data_bits_le);
34 self.nonce.write_bits_le(vec);
35 }
36
37 fn write_bits_be(&self, vec: &mut Vec<Self::Boolean>) {
39 let mut data_bits_be = vec![];
41 for (identifier, entry) in &self.data {
42 identifier.write_bits_be(&mut data_bits_be);
43 entry.write_bits_be(&mut data_bits_be);
44 }
45
46 self.owner.write_bits_be(vec);
48 U32::constant(console::U32::new(data_bits_be.len() as u32)).write_bits_be(vec);
49 vec.extend_from_slice(&data_bits_be);
50 self.nonce.write_bits_be(vec);
51 }
52}
53
54impl<A: Aleo> ToBits for Record<A, Ciphertext<A>> {
55 type Boolean = Boolean<A>;
56
57 fn write_bits_le(&self, vec: &mut Vec<Self::Boolean>) {
59 let mut data_bits_le = vec![];
61 for (identifier, entry) in &self.data {
62 identifier.write_bits_le(&mut data_bits_le);
63 entry.write_bits_le(&mut data_bits_le);
64 }
65
66 self.owner.write_bits_le(vec);
68 U32::constant(console::U32::new(data_bits_le.len() as u32)).write_bits_le(vec);
69 vec.extend_from_slice(&data_bits_le);
70 self.nonce.write_bits_le(vec);
71 }
72
73 fn write_bits_be(&self, vec: &mut Vec<Self::Boolean>) {
75 let mut data_bits_be = vec![];
77 for (identifier, entry) in &self.data {
78 identifier.write_bits_be(&mut data_bits_be);
79 entry.write_bits_be(&mut data_bits_be);
80 }
81
82 self.owner.write_bits_be(vec);
84 U32::constant(console::U32::new(data_bits_be.len() as u32)).write_bits_be(vec);
85 vec.extend_from_slice(&data_bits_be);
86 self.nonce.write_bits_be(vec);
87 }
88}