Skip to main content

mylib/gates/
adder.rs

1use super::And;
2use super::Or;
3use super::Signal;
4use super::Xor;
5
6pub struct Adder;
7
8impl Adder {
9    pub fn send_signal(carry: &Signal, input1: &Signal, input2: &Signal) -> (Signal, Signal) {
10        let helper_signal = Xor::send_signal(input1, input2);
11        (
12            Xor::send_signal(&helper_signal, carry),
13            Or::send_signal(
14                &And::send_signal(&helper_signal, carry),
15                &And::send_signal(input1, input2),
16            ),
17        )
18    }
19}