diff --git a/rust/src/lib.rs b/rust/src/lib.rs index cfea4eb..a3a2a94 100644 --- a/rust/src/lib.rs +++ b/rust/src/lib.rs @@ -568,7 +568,7 @@ impl QrCode { let upward: bool = (right + 1) & 2 == 0; let y: i32 = if upward { self.size - 1 - vert } else { vert }; // Actual y coordinate if !self.isfunction[(y * self.size + x) as usize] && i < data.len() * 8 { - *self.module_mut(x, y) = get_bit(u32::from(data[i >> 3]), 7 - ((i & 7) as i32)); + *self.module_mut(x, y) = get_bit(u32::from(data[i >> 3]), 7 - ((i as i32) & 7)); i += 1; } // If this QR Code has any remainder bits (0 to 7), they were assigned as @@ -1109,7 +1109,7 @@ impl QrSegment { for seg in segs { let ccbits: u8 = seg.mode.num_char_count_bits(version); // ccbits can be as large as 16, but usize can be as small as 16 - if let Some(limit) = 1usize.checked_shl(u32::from(ccbits)) { + if let Some(limit) = 1usize.checked_shl(ccbits.into()) { if seg.numchars >= limit { return None; // The segment's length doesn't fit the field's bit width } @@ -1205,7 +1205,7 @@ impl BitBuffer { /// /// Requires len ≤ 31 and val < 2len. pub fn append_bits(&mut self, val: u32, len: u8) { - assert!(len <= 31 && (val >> len) == 0, "Value out of range"); + assert!(len <= 31 && val >> len == 0, "Value out of range"); self.0.extend((0 .. i32::from(len)).rev().map(|i| get_bit(val, i))); // Append bit by bit } }