mirror of
https://codeberg.org/icewind/bitbuffer.git
synced 2026-06-03 16:44:06 +02:00
clippy fixes
This commit is contained in:
parent
bc5d74038e
commit
bd7a4fca5b
8 changed files with 25 additions and 33 deletions
|
|
@ -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!(
|
||||||
|
|
|
||||||
|
|
@ -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);
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
),
|
),
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -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]);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue