removed redundant code
This commit is contained in:
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user