mod tests; pub fn adder(a: u32, b: u32) -> u32 { let mut result: u32 = 0; let mut carriage: u32 = 0; for i in 0..32 { let a_bit = a >> i & 1; let b_bit = b >> i & 1; result = result | (a_bit ^ b_bit ^ carriage) << i; carriage = (a_bit & b_bit) | ((a_bit ^ b_bit) & carriage) } result }