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}