removed redundant code

This commit is contained in:
Priec
2025-11-23 23:12:32 +01:00
parent 804dc66a4b
commit 522236e20c

View File

@@ -196,10 +196,7 @@ fn calculate_parity(data: u8, parity: Parity, data_bits: u8) -> u8 {
match parity { match parity {
Parity::None => 0, Parity::None => 0,
Parity::Even | Parity::Odd => { Parity::Even | Parity::Odd => {
// Mask to only count bits that are part of the data let ones = data.count_ones() & 1;
let mask: u8 = if data_bits == 8 { 0xFF } else { ((1u16 << data_bits) - 1) as u8 };
let ones = (data & mask).count_ones() & 1;
match parity { match parity {
Parity::Even => ones as u8, // If ones=1 (odd), emit 1 to make even Parity::Even => ones as u8, // If ones=1 (odd), emit 1 to make even
Parity::Odd => (ones ^ 1) as u8, // XOR - If ones=1 (odd), emit 0 to keep odd Parity::Odd => (ones ^ 1) as u8, // XOR - If ones=1 (odd), emit 0 to keep odd