snarkvm_console_program/data/future/
to_bits.rs1use super::*;
17
18impl<N: Network> ToBits for Future<N> {
19 #[inline]
21 fn write_bits_le(&self, vec: &mut Vec<bool>) {
22 let program_id_bits = self.program_id.to_bits_le();
24 u16::try_from(program_id_bits.len()).or_halt_with::<N>("Program ID exceeds u16::MAX bits").write_bits_le(vec);
25 vec.extend_from_slice(&program_id_bits);
26
27 let function_name_bits = self.function_name.to_bits_le();
29 u16::try_from(function_name_bits.len())
30 .or_halt_with::<N>("Function name exceeds u16::MAX bits")
31 .write_bits_le(vec);
32 vec.extend_from_slice(&function_name_bits);
33
34 u8::try_from(self.arguments.len()).or_halt_with::<N>("arguments exceed u8::MAX").write_bits_le(vec);
36
37 for argument in &self.arguments {
39 let argument_bits = argument.to_bits_le();
40
41 u16::try_from(argument_bits.len()).or_halt_with::<N>("argument exceeds u16::MAX bits").write_bits_le(vec);
43
44 vec.extend_from_slice(&argument_bits);
46 }
47 }
48
49 #[inline]
51 fn write_bits_be(&self, vec: &mut Vec<bool>) {
52 let program_id_bits = self.program_id.to_bits_be();
54 u16::try_from(program_id_bits.len()).or_halt_with::<N>("Program ID exceeds u16::MAX bits").write_bits_be(vec);
55 vec.extend_from_slice(&program_id_bits);
56
57 let function_name_bits = self.function_name.to_bits_be();
59 u16::try_from(function_name_bits.len())
60 .or_halt_with::<N>("Function name exceeds u16::MAX bits")
61 .write_bits_be(vec);
62 vec.extend_from_slice(&function_name_bits);
63
64 u8::try_from(self.arguments.len()).or_halt_with::<N>("arguments exceed u8::MAX").write_bits_be(vec);
66
67 for argument in &self.arguments {
69 let argument_bits = argument.to_bits_be();
70
71 u16::try_from(argument_bits.len()).or_halt_with::<N>("argument exceeds u16::MAX bits").write_bits_be(vec);
73
74 vec.extend_from_slice(&argument_bits);
76 }
77 }
78}