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 2025-02-23 22:33:20 +01:00
commit ea2cd36877
8 changed files with 43 additions and 42 deletions

View file

@ -16,24 +16,24 @@ fn read_perf<E: Endianness>(buffer: &BitReadBuffer<E>) -> u16 {
} }
} }
const ONES: [u8; 1024 * 1024 * 10] = [1u8; 1024 * 1024 * 10]; const ONES: &[u8; 1024 * 1024 * 10] = &[1u8; 1024 * 1024 * 10];
fn perf_le() { fn perf_le() {
let buffer = BitReadBuffer::new(black_box(&ONES), BigEndian); let buffer = BitReadBuffer::new(black_box(ONES), BigEndian);
let data = read_perf(&buffer); let data = read_perf(&buffer);
assert_eq!(data, 0); assert_eq!(data, 0);
black_box(data); black_box(data);
} }
fn perf_be() { fn perf_be() {
let buffer = BitReadBuffer::new(black_box(&ONES), BigEndian); let buffer = BitReadBuffer::new(black_box(ONES), BigEndian);
let data = read_perf(&buffer); let data = read_perf(&buffer);
assert_eq!(data, 0); assert_eq!(data, 0);
black_box(data); black_box(data);
} }
fn perf_f32_be() { fn perf_f32_be() {
let buffer = BitReadBuffer::new(black_box(&ONES), BigEndian); let buffer = BitReadBuffer::new(black_box(ONES), BigEndian);
let mut pos = 0; let mut pos = 0;
let len = buffer.bit_len(); let len = buffer.bit_len();
let mut result: f32 = 0.0; let mut result: f32 = 0.0;
@ -50,7 +50,7 @@ fn perf_f32_be() {
} }
fn perf_f32_le() { fn perf_f32_le() {
let buffer = BitReadBuffer::new(black_box(&ONES), BigEndian); let buffer = BitReadBuffer::new(black_box(ONES), BigEndian);
let mut pos = 0; let mut pos = 0;
let len = buffer.bit_len(); let len = buffer.bit_len();
let mut result: f32 = 0.0; let mut result: f32 = 0.0;
@ -69,7 +69,7 @@ fn perf_f32_le() {
const F64_RESULT: f64 = 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010156250477904244; const F64_RESULT: f64 = 0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010156250477904244;
fn perf_f64() { fn perf_f64() {
let buffer = BitReadBuffer::new(black_box(&ONES), BigEndian); let buffer = BitReadBuffer::new(black_box(ONES), BigEndian);
let mut pos = 0; let mut pos = 0;
let len = buffer.bit_len(); let len = buffer.bit_len();
let mut result: f64 = 0.0; let mut result: f64 = 0.0;
@ -86,7 +86,7 @@ fn perf_f64() {
} }
fn perf_bool() { fn perf_bool() {
let buffer = BitReadBuffer::new(black_box(&ONES), BigEndian); let buffer = BitReadBuffer::new(black_box(ONES), BigEndian);
let mut pos = 0; let mut pos = 0;
let len = buffer.bit_len(); let len = buffer.bit_len();
loop { loop {

View file

@ -10,7 +10,8 @@
inputs.flakelight.follows = "flakelight"; inputs.flakelight.follows = "flakelight";
}; };
}; };
outputs = { mill-scale, ... }: mill-scale ./. { outputs = {mill-scale, ...}:
mill-scale ./. {
devShell.packages = pkgs: with pkgs; [cargo-expand]; devShell.packages = pkgs: with pkgs; [cargo-expand];
}; };
} }

View file

@ -1,3 +1,5 @@
//! some extra number traits
use crate::Endianness; use crate::Endianness;
use num_traits::{PrimInt, WrappingSub}; use num_traits::{PrimInt, WrappingSub};
use std::array::TryFromSliceError; use std::array::TryFromSliceError;
@ -5,8 +7,6 @@ use std::convert::TryFrom;
use std::fmt::Debug; use std::fmt::Debug;
use std::ops::{BitOrAssign, BitXor}; use std::ops::{BitOrAssign, BitXor};
/// some extra number traits
/// Allow casting floats unchecked /// Allow casting floats unchecked
pub trait UncheckedPrimitiveFloat: Sized { pub trait UncheckedPrimitiveFloat: Sized {
/// Byte array of the size of the float /// Byte array of the size of the float
@ -387,7 +387,7 @@ impl SplitFitUsize for u64 {
(if E::is_le() { (if E::is_le() {
[ [
((self & (Self::MAX >> 40)) as usize, 24), ((self & (Self::MAX >> 40)) as usize, 24),
((self >> 24 & (Self::MAX >> 16)) as usize, 24), (((self >> 24) & (Self::MAX >> 16)) as usize, 24),
((self >> 48) as usize, 16), ((self >> 48) as usize, 16),
] ]
} else { } else {
@ -395,7 +395,7 @@ impl SplitFitUsize for u64 {
[ [
((self >> 48) as usize, 16u8.saturating_sub(offset)), ((self >> 48) as usize, 16u8.saturating_sub(offset)),
( (
(self >> 24 & (Self::MAX >> 16)) as usize, ((self >> 24) & (Self::MAX >> 16)) as usize,
24u8.saturating_sub(offset.saturating_sub(16)), 24u8.saturating_sub(offset.saturating_sub(16)),
), ),
( (
@ -417,10 +417,10 @@ impl SplitFitUsize for u128 {
(if E::is_le() { (if E::is_le() {
[ [
((self & (Self::MAX >> 104)) as usize, 24), ((self & (Self::MAX >> 104)) as usize, 24),
((self >> 24 & (Self::MAX >> 80)) as usize, 24), (((self >> 24) & (Self::MAX >> 80)) as usize, 24),
((self >> 48 & (Self::MAX >> 56)) as usize, 24), (((self >> 48) & (Self::MAX >> 56)) as usize, 24),
((self >> 72 & (Self::MAX >> 32)) as usize, 24), (((self >> 72) & (Self::MAX >> 32)) as usize, 24),
((self >> 96 & (Self::MAX >> 8)) as usize, 24), (((self >> 96) & (Self::MAX >> 8)) as usize, 24),
((self >> 120) as usize, 8), ((self >> 120) as usize, 8),
] ]
} else { } else {
@ -428,19 +428,19 @@ impl SplitFitUsize for u128 {
[ [
((self >> 120) as usize, 8u8.saturating_sub(offset)), ((self >> 120) as usize, 8u8.saturating_sub(offset)),
( (
(self >> 96 & (Self::MAX >> 8)) as usize, ((self >> 96) & (Self::MAX >> 8)) as usize,
24u8.saturating_sub(offset.saturating_sub(8)), 24u8.saturating_sub(offset.saturating_sub(8)),
), ),
( (
(self >> 72 & (Self::MAX >> 32)) as usize, ((self >> 72) & (Self::MAX >> 32)) as usize,
24u8.saturating_sub(offset.saturating_sub(32)), 24u8.saturating_sub(offset.saturating_sub(32)),
), ),
( (
(self >> 48 & (Self::MAX >> 56)) as usize, ((self >> 48) & (Self::MAX >> 56)) as usize,
24u8.saturating_sub(offset.saturating_sub(56)), 24u8.saturating_sub(offset.saturating_sub(56)),
), ),
( (
(self >> 24 & (Self::MAX >> 80)) as usize, ((self >> 24) & (Self::MAX >> 80)) as usize,
24u8.saturating_sub(offset.saturating_sub(80)), 24u8.saturating_sub(offset.saturating_sub(80)),
), ),
( (

View file

@ -23,7 +23,7 @@ pub(crate) enum Data<'a> {
Owned(Rc<[u8]>), Owned(Rc<[u8]>),
} }
impl<'a> Data<'a> { impl Data<'_> {
pub fn as_slice(&self) -> &[u8] { pub fn as_slice(&self) -> &[u8] {
match self { match self {
Data::Borrowed(bytes) => bytes, Data::Borrowed(bytes) => bytes,
@ -44,7 +44,7 @@ impl<'a> Data<'a> {
} }
} }
impl<'a> Index<Range<usize>> for Data<'a> { impl Index<Range<usize>> for Data<'_> {
type Output = [u8]; type Output = [u8];
fn index(&self, index: Range<usize>) -> &Self::Output { fn index(&self, index: Range<usize>) -> &Self::Output {
@ -52,7 +52,7 @@ impl<'a> Index<Range<usize>> for Data<'a> {
} }
} }
impl<'a> Index<RangeFrom<usize>> for Data<'a> { impl Index<RangeFrom<usize>> for Data<'_> {
type Output = [u8]; type Output = [u8];
fn index(&self, index: RangeFrom<usize>) -> &Self::Output { fn index(&self, index: RangeFrom<usize>) -> &Self::Output {
@ -60,7 +60,7 @@ impl<'a> Index<RangeFrom<usize>> for Data<'a> {
} }
} }
impl<'a> Index<usize> for Data<'a> { impl Index<usize> for Data<'_> {
type Output = u8; type Output = u8;
fn index(&self, index: usize) -> &Self::Output { fn index(&self, index: usize) -> &Self::Output {
@ -68,7 +68,7 @@ impl<'a> Index<usize> for Data<'a> {
} }
} }
impl<'a> Clone for Data<'a> { impl Clone for Data<'_> {
fn clone(&self) -> Self { fn clone(&self) -> Self {
match self { match self {
Data::Borrowed(bytes) => Data::Borrowed(bytes), Data::Borrowed(bytes) => Data::Borrowed(bytes),
@ -458,7 +458,7 @@ where
if count == 0 { if count == 0 {
T::zero() T::zero()
} else if T::is_signed() { } else if T::is_signed() {
let sign_bit = value >> (count - 1) & T::one(); let sign_bit = (value >> (count - 1)) & T::one();
if sign_bit == T::one() { if sign_bit == T::one() {
value | (T::zero() - T::one()) ^ (T::one() << count).wrapping_sub(&T::one()) value | (T::zero() - T::one()) ^ (T::one() << count).wrapping_sub(&T::one())
} else { } else {
@ -794,13 +794,13 @@ impl<'a, E: Endianness> From<&'a [u8]> for BitReadBuffer<'a, E> {
} }
} }
impl<'a, E: Endianness> From<Vec<u8>> for BitReadBuffer<'a, E> { impl<E: Endianness> From<Vec<u8>> for BitReadBuffer<'_, E> {
fn from(bytes: Vec<u8>) -> Self { fn from(bytes: Vec<u8>) -> Self {
BitReadBuffer::new_owned(bytes, E::endianness()) BitReadBuffer::new_owned(bytes, E::endianness())
} }
} }
impl<'a, E: Endianness> Clone for BitReadBuffer<'a, E> { impl<E: Endianness> Clone for BitReadBuffer<'_, E> {
fn clone(&self) -> Self { fn clone(&self) -> Self {
BitReadBuffer { BitReadBuffer {
bytes: self.bytes.clone(), bytes: self.bytes.clone(),
@ -822,7 +822,7 @@ impl<E: Endianness> Debug for BitReadBuffer<'_, E> {
} }
} }
impl<'a, E: Endianness> PartialEq for BitReadBuffer<'a, E> { impl<E: Endianness> PartialEq for BitReadBuffer<'_, E> {
fn eq(&self, other: &Self) -> bool { fn eq(&self, other: &Self) -> bool {
if self.bit_len != other.bit_len { if self.bit_len != other.bit_len {
return false; return false;

View file

@ -756,7 +756,7 @@ where
} }
} }
impl<'a, E: Endianness> Clone for BitReadStream<'a, E> { impl<E: Endianness> Clone for BitReadStream<'_, E> {
fn clone(&self) -> Self { fn clone(&self) -> Self {
BitReadStream { BitReadStream {
buffer: self.buffer.clone(), buffer: self.buffer.clone(),
@ -766,7 +766,7 @@ impl<'a, E: Endianness> Clone for BitReadStream<'a, E> {
} }
} }
impl<'a, E: Endianness> PartialEq for BitReadStream<'a, E> { impl<E: Endianness> PartialEq for BitReadStream<'_, E> {
fn eq(&self, other: &Self) -> bool { fn eq(&self, other: &Self) -> bool {
// clones so we can mut // clones so we can mut
let mut self_clone = self.clone(); let mut self_clone = self.clone();

View file

@ -200,7 +200,7 @@ impl<T: BitWrite<E>, E: Endianness> BitWrite<E> for Option<T> {
} }
} }
impl<'a, T: BitWrite<E> + ToOwned + ?Sized, E: Endianness> BitWrite<E> for Cow<'a, T> { impl<T: BitWrite<E> + ToOwned + ?Sized, E: Endianness> BitWrite<E> for Cow<'_, T> {
#[inline] #[inline]
fn write(&self, stream: &mut BitWriteStream<E>) -> Result<()> { fn write(&self, stream: &mut BitWriteStream<E>) -> Result<()> {
self.as_ref().write(stream) self.as_ref().write(stream)
@ -378,7 +378,7 @@ impl<T: BitWriteSized<E>, E: Endianness> BitWriteSized<E> for Option<T> {
} }
} }
impl<'a, T: BitWriteSized<E> + ToOwned + ?Sized, E: Endianness> BitWriteSized<E> for Cow<'a, T> { impl<T: BitWriteSized<E> + ToOwned + ?Sized, E: Endianness> BitWriteSized<E> for Cow<'_, T> {
#[inline] #[inline]
fn write_sized(&self, stream: &mut BitWriteStream<E>, len: usize) -> Result<()> { fn write_sized(&self, stream: &mut BitWriteStream<E>, len: usize) -> Result<()> {
self.as_ref().write_sized(stream, len) self.as_ref().write_sized(stream, len)

View file

@ -8,7 +8,7 @@ enum WriteData<'a> {
Slice { data: &'a mut [u8], length: usize }, Slice { data: &'a mut [u8], length: usize },
} }
impl<'a> WriteData<'a> { impl WriteData<'_> {
fn pop(&mut self) -> Option<u8> { fn pop(&mut self) -> Option<u8> {
match self { match self {
WriteData::Vec(vec) => vec.pop(), WriteData::Vec(vec) => vec.pop(),
@ -51,7 +51,7 @@ impl<'a> WriteData<'a> {
} }
} }
impl<'a> Index<usize> for WriteData<'a> { impl Index<usize> for WriteData<'_> {
type Output = u8; type Output = u8;
fn index(&self, index: usize) -> &Self::Output { fn index(&self, index: usize) -> &Self::Output {
@ -62,7 +62,7 @@ impl<'a> Index<usize> for WriteData<'a> {
} }
} }
impl<'a> IndexMut<usize> for WriteData<'a> { impl IndexMut<usize> for WriteData<'_> {
fn index_mut(&mut self, index: usize) -> &mut Self::Output { fn index_mut(&mut self, index: usize) -> &mut Self::Output {
match self { match self {
WriteData::Vec(vec) => &mut vec[index], WriteData::Vec(vec) => &mut vec[index],
@ -71,7 +71,7 @@ impl<'a> IndexMut<usize> for WriteData<'a> {
} }
} }
impl<'a> Index<Range<usize>> for WriteData<'a> { impl Index<Range<usize>> for WriteData<'_> {
type Output = [u8]; type Output = [u8];
fn index(&self, index: Range<usize>) -> &Self::Output { fn index(&self, index: Range<usize>) -> &Self::Output {
@ -82,7 +82,7 @@ impl<'a> Index<Range<usize>> for WriteData<'a> {
} }
} }
impl<'a> IndexMut<Range<usize>> for WriteData<'a> { impl IndexMut<Range<usize>> for WriteData<'_> {
fn index_mut(&mut self, index: Range<usize>) -> &mut Self::Output { fn index_mut(&mut self, index: Range<usize>) -> &mut Self::Output {
match self { match self {
WriteData::Vec(vec) => &mut vec[index], WriteData::Vec(vec) => &mut vec[index],
@ -157,7 +157,7 @@ impl<'a, E: Endianness> WriteBuffer<'a, E> {
let merged_byte_count = (count + bit_offset + 7) / 8; let merged_byte_count = (count + bit_offset + 7) / 8;
if E::is_le() { if E::is_le() {
let merged = last_written_byte as usize | bits << bit_offset; let merged = last_written_byte as usize | (bits << bit_offset);
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 {

View file

@ -69,7 +69,7 @@ where
} }
} }
impl<'a, E> BitWriteStream<'a, E> impl<E> BitWriteStream<'_, E>
where where
E: Endianness, E: Endianness,
{ {