snarkvm_circuit_program/data/record/entry/
to_bits.rs1use super::*;
17
18impl<A: Aleo> ToBits for Entry<A, Plaintext<A>> {
19 type Boolean = Boolean<A>;
20
21 fn write_bits_le(&self, vec: &mut Vec<Boolean<A>>) {
23 match self {
24 Self::Constant(..) => vec.extend_from_slice(&[Boolean::constant(false), Boolean::constant(false)]),
25 Self::Public(..) => vec.extend_from_slice(&[Boolean::constant(false), Boolean::constant(true)]),
26 Self::Private(..) => vec.extend_from_slice(&[Boolean::constant(true), Boolean::constant(false)]),
27 };
28 match self {
29 Self::Constant(plaintext) => plaintext.write_bits_le(vec),
30 Self::Public(plaintext) => plaintext.write_bits_le(vec),
31 Self::Private(plaintext) => plaintext.write_bits_le(vec),
32 };
33 }
34
35 fn write_bits_be(&self, vec: &mut Vec<Boolean<A>>) {
37 match self {
38 Self::Constant(..) => vec.extend_from_slice(&[Boolean::constant(false), Boolean::constant(false)]),
39 Self::Public(..) => vec.extend_from_slice(&[Boolean::constant(false), Boolean::constant(true)]),
40 Self::Private(..) => vec.extend_from_slice(&[Boolean::constant(true), Boolean::constant(false)]),
41 };
42 match self {
43 Self::Constant(plaintext) => plaintext.write_bits_be(vec),
44 Self::Public(plaintext) => plaintext.write_bits_be(vec),
45 Self::Private(plaintext) => plaintext.write_bits_be(vec),
46 };
47 }
48}
49
50impl<A: Aleo> ToBits for Entry<A, Ciphertext<A>> {
51 type Boolean = Boolean<A>;
52
53 fn write_bits_le(&self, vec: &mut Vec<Boolean<A>>) {
55 match self {
56 Self::Constant(..) => vec.extend_from_slice(&[Boolean::constant(false), Boolean::constant(false)]),
57 Self::Public(..) => vec.extend_from_slice(&[Boolean::constant(false), Boolean::constant(true)]),
58 Self::Private(..) => vec.extend_from_slice(&[Boolean::constant(true), Boolean::constant(false)]),
59 };
60 match self {
61 Self::Constant(plaintext) => plaintext.write_bits_le(vec),
62 Self::Public(plaintext) => plaintext.write_bits_le(vec),
63 Self::Private(plaintext) => plaintext.write_bits_le(vec),
64 };
65 }
66
67 fn write_bits_be(&self, vec: &mut Vec<Boolean<A>>) {
69 match self {
70 Self::Constant(..) => vec.extend_from_slice(&[Boolean::constant(false), Boolean::constant(false)]),
71 Self::Public(..) => vec.extend_from_slice(&[Boolean::constant(false), Boolean::constant(true)]),
72 Self::Private(..) => vec.extend_from_slice(&[Boolean::constant(true), Boolean::constant(false)]),
73 };
74 match self {
75 Self::Constant(plaintext) => plaintext.write_bits_be(vec),
76 Self::Public(plaintext) => plaintext.write_bits_be(vec),
77 Self::Private(plaintext) => plaintext.write_bits_be(vec),
78 };
79 }
80}