snarkvm_circuit_program/data/future/
to_bits.rs1use super::*;
17use snarkvm_circuit_types::U8;
18
19impl<A: Aleo> ToBits for Future<A> {
20 type Boolean = Boolean<A>;
21
22 #[inline]
24 fn write_bits_le(&self, vec: &mut Vec<Boolean<A>>) {
25 let program_id_bits = self.program_id.to_bits_le();
27 U16::constant(console::U16::new(program_id_bits.len() as u16)).write_bits_le(vec);
28 vec.extend_from_slice(&program_id_bits);
29
30 let function_name_bits = self.function_name.to_bits_le();
32 U16::constant(console::U16::new(function_name_bits.len() as u16)).write_bits_le(vec);
33 vec.extend_from_slice(&function_name_bits);
34
35 U8::constant(console::U8::new(self.arguments.len() as u8)).write_bits_le(vec);
37
38 for argument in &self.arguments {
40 let argument_bits = argument.to_bits_le();
41 U16::constant(console::U16::new(argument_bits.len() as u16)).write_bits_le(vec);
43 vec.extend_from_slice(&argument_bits);
45 }
46 }
47
48 #[inline]
50 fn write_bits_be(&self, vec: &mut Vec<Boolean<A>>) {
51 let program_id_bits = self.program_id.to_bits_be();
53 U16::constant(console::U16::new(program_id_bits.len() as u16)).write_bits_be(vec);
54 vec.extend_from_slice(&program_id_bits);
55
56 let function_name_bits = self.function_name.to_bits_be();
58 U16::constant(console::U16::new(function_name_bits.len() as u16)).write_bits_be(vec);
59 vec.extend_from_slice(&function_name_bits);
60
61 U8::constant(console::U8::new(self.arguments.len() as u8)).write_bits_be(vec);
63
64 for argument in &self.arguments {
66 let argument_bits = argument.to_bits_be();
67 U16::constant(console::U16::new(argument_bits.len() as u16)).write_bits_be(vec);
69 vec.extend_from_slice(&argument_bits);
71 }
72 }
73}