1
0
Fork 0
mirror of https://codeberg.org/icewind/bitbuffer.git synced 2026-06-03 16:44:06 +02:00

clippy fixes

This commit is contained in:
Robin Appelman 2022-04-09 18:41:39 +02:00
commit bd7a4fca5b
8 changed files with 25 additions and 33 deletions

View file

@ -227,12 +227,12 @@ fn derive_bitread_trait(
let size = size( let size = size(
input.data.clone(), input.data.clone(),
&name, name,
&input.attrs, &input.attrs,
extra_param.is_some(), extra_param.is_some(),
); );
let parsed = parse(input.data.clone(), &name, &input.attrs, false); let parsed = parse(input.data.clone(), name, &input.attrs, false);
let parsed_unchecked = parse(input.data.clone(), &name, &input.attrs, true); let parsed_unchecked = parse(input.data.clone(), name, &input.attrs, true);
let endianness_placeholder = endianness.unwrap_or_else(|| "_E".to_owned()); let endianness_placeholder = endianness.unwrap_or_else(|| "_E".to_owned());
let trait_def_str = format!( let trait_def_str = format!(

View file

@ -44,12 +44,12 @@ pub fn derive_bitwrite_trait(
let _size = size( let _size = size(
input.data.clone(), input.data.clone(),
&name, name,
&input.attrs, &input.attrs,
extra_param.is_some(), extra_param.is_some(),
); );
let parsed = write(input.data.clone(), &name, &input.attrs); let parsed = write(input.data.clone(), name, &input.attrs);
let _parsed_unchecked = write(input.data.clone(), &name, &input.attrs); let _parsed_unchecked = write(input.data.clone(), name, &input.attrs);
let endianness_placeholder = endianness.unwrap_or_else(|| "_E".to_owned()); let endianness_placeholder = endianness.unwrap_or_else(|| "_E".to_owned());
let trait_def_str = format!("::bitbuffer::{}<{}>", trait_name, &endianness_placeholder); let trait_def_str = format!("::bitbuffer::{}<{}>", trait_name, &endianness_placeholder);

View file

@ -393,21 +393,20 @@ impl SplitFitUsize for usize {
type Iter = array::IntoIter<(usize, u8), 2>; type Iter = array::IntoIter<(usize, u8), 2>;
fn split_fit_usize<E: Endianness>(self) -> Self::Iter { fn split_fit_usize<E: Endianness>(self) -> Self::Iter {
const USIZE_BITS: usize = size_of::<usize>() * 8;
(if E::is_le() { (if E::is_le() {
[ [
( (
(self & (Self::MAX >> (USIZE_BITS - 8))) as usize, (self & (Self::MAX >> (usize::BITS - 8))) as usize,
USIZE_BITS as u8 - 8, usize::BITS as u8 - 8,
), ),
((self >> (USIZE_BITS - 8)) as usize, 8), ((self >> (usize::BITS - 8)) as usize, 8),
] ]
} else { } else {
[ [
((self >> (USIZE_BITS - 8)) as usize, 8), ((self >> (usize::BITS - 8)) as usize, 8),
( (
(self & (Self::MAX >> (USIZE_BITS - 8))) as usize, (self & (Self::MAX >> (usize::BITS - 8))) as usize,
USIZE_BITS as u8 - 8, usize::BITS as u8 - 8,
), ),
] ]
}) })

View file

@ -126,17 +126,17 @@ macro_rules! impl_read_int {
impl<E: Endianness> BitRead<'_, E> for $type { impl<E: Endianness> BitRead<'_, E> for $type {
#[inline] #[inline]
fn read(stream: &mut BitReadStream<E>) -> Result<$type> { fn read(stream: &mut BitReadStream<E>) -> Result<$type> {
stream.read_int::<$type>(size_of::<$type>() * 8) stream.read_int::<$type>(<$type>::BITS as usize)
} }
#[inline] #[inline]
unsafe fn read_unchecked(stream: &mut BitReadStream<E>, end: bool) -> Result<$type> { unsafe fn read_unchecked(stream: &mut BitReadStream<E>, end: bool) -> Result<$type> {
Ok(stream.read_int_unchecked::<$type>(size_of::<$type>() * 8, end)) Ok(stream.read_int_unchecked::<$type>(<$type>::BITS as usize, end))
} }
#[inline] #[inline]
fn bit_size() -> Option<usize> { fn bit_size() -> Option<usize> {
Some(size_of::<$type>() * 8) Some(<$type>::BITS as usize)
} }
} }
}; };

View file

@ -197,14 +197,12 @@ pub(crate) fn get_bits_from_usize<E: Endianness>(
bit_offset: usize, bit_offset: usize,
count: usize, count: usize,
) -> usize { ) -> usize {
let usize_bit_size = size_of::<usize>() * 8;
let shifted = if E::is_le() { let shifted = if E::is_le() {
val >> bit_offset val >> bit_offset
} else { } else {
val >> (usize_bit_size - bit_offset - count) val >> (usize::BITS as usize - bit_offset - count)
}; };
let mask = !(std::usize::MAX << count); let mask = !(usize::MAX << count);
shifted & mask shifted & mask
} }
@ -388,11 +386,10 @@ where
T: PrimInt + BitOrAssign + IsSigned + UncheckedPrimitiveInt + BitXor, T: PrimInt + BitOrAssign + IsSigned + UncheckedPrimitiveInt + BitXor,
{ {
let type_bit_size = size_of::<T>() * 8; let type_bit_size = size_of::<T>() * 8;
let usize_bit_size = size_of::<usize>() * 8;
let bit_offset = position & 7; let bit_offset = position & 7;
let fit_usize = count + bit_offset < usize_bit_size; let fit_usize = count + bit_offset < usize::BITS as usize;
let value = if fit_usize { let value = if fit_usize {
self.read_fit_usize(position, count, end) self.read_fit_usize(position, count, end)
} else { } else {

View file

@ -1,6 +1,5 @@
use crate::{BitReadStream, BitWriteStream, Endianness, Result}; use crate::{BitReadStream, BitWriteStream, Endianness, Result};
use std::borrow::Cow; use std::borrow::Cow;
use std::mem::size_of;
use std::rc::Rc; use std::rc::Rc;
use std::sync::Arc; use std::sync::Arc;
@ -90,7 +89,7 @@ macro_rules! impl_write_int {
impl<E: Endianness> BitWrite<E> for $type { impl<E: Endianness> BitWrite<E> for $type {
#[inline] #[inline]
fn write(&self, stream: &mut BitWriteStream<E>) -> Result<()> { fn write(&self, stream: &mut BitWriteStream<E>) -> Result<()> {
stream.write_int::<$type>(*self, size_of::<$type>() * 8) stream.write_int::<$type>(*self, <$type>::BITS as usize)
} }
} }
}; };

View file

@ -1,9 +1,6 @@
use crate::Endianness; use crate::Endianness;
use std::cmp::min; use std::cmp::min;
use std::marker::PhantomData; use std::marker::PhantomData;
use std::mem::size_of;
const USIZE_BITS: usize = size_of::<usize>() * 8;
pub struct WriteBuffer<'a, E: Endianness> { pub struct WriteBuffer<'a, E: Endianness> {
bit_len: usize, bit_len: usize,
@ -47,11 +44,11 @@ impl<'a, E: Endianness> WriteBuffer<'a, E> {
} }
// ensure there are no stray bits // ensure there are no stray bits
let bits = bits & (usize::MAX >> (USIZE_BITS - count)); let bits = bits & (usize::MAX >> (usize::BITS as usize - count));
let bit_offset = self.bit_len & 7; let bit_offset = self.bit_len & 7;
debug_assert!(count <= USIZE_BITS - bit_offset); debug_assert!(count <= usize::BITS as usize - bit_offset);
let last_written_byte = if bit_offset > 0 { let last_written_byte = if bit_offset > 0 {
self.bytes.pop().unwrap_or(0) self.bytes.pop().unwrap_or(0)
@ -65,8 +62,8 @@ impl<'a, E: Endianness> WriteBuffer<'a, E> {
self.bytes self.bytes
.extend_from_slice(&merged.to_le_bytes()[0..merged_byte_count]); .extend_from_slice(&merged.to_le_bytes()[0..merged_byte_count]);
} else { } else {
let merged = ((last_written_byte as usize) << (USIZE_BITS - 8)) let merged = ((last_written_byte as usize) << (usize::BITS as usize - 8))
| (bits << (USIZE_BITS - bit_offset - count)); | (bits << (usize::BITS as usize - bit_offset - count));
self.bytes self.bytes
.extend_from_slice(&merged.to_be_bytes()[0..merged_byte_count]); .extend_from_slice(&merged.to_be_bytes()[0..merged_byte_count]);
} }

View file

@ -270,13 +270,13 @@ where
requested_length: length, requested_length: length,
}); });
} }
self.write_bytes(&string.as_bytes())?; self.write_bytes(string.as_bytes())?;
for _ in 0..(length - string.len()) { for _ in 0..(length - string.len()) {
self.push_bits(0, 8) self.push_bits(0, 8)
} }
} }
None => { None => {
self.write_bytes(&string.as_bytes())?; self.write_bytes(string.as_bytes())?;
self.push_bits(0, 8) self.push_bits(0, 8)
} }
} }