aboutsummaryrefslogtreecommitdiff
path: root/src/passwordmaker/base_conversion/iterative_conversion_impl
diff options
context:
space:
mode:
authorAndreas Grois <andi@grois.info>2022-11-04 20:51:12 +0100
committerAndreas Grois <andi@grois.info>2022-11-04 20:51:12 +0100
commit36b7ec5ea805196749c7f10f1d8e03ae03564f2b (patch)
tree03956189a30c9cce9be403074ab3ce506d629760 /src/passwordmaker/base_conversion/iterative_conversion_impl
parent344264e03d7635b9bd2688390100d3b9f623c58a (diff)
More Clippy lints.
Now Clippy is happy.
Diffstat (limited to 'src/passwordmaker/base_conversion/iterative_conversion_impl')
-rw-r--r--src/passwordmaker/base_conversion/iterative_conversion_impl/mod.rs10
-rw-r--r--src/passwordmaker/base_conversion/iterative_conversion_impl/precomputed_constants.rs14
2 files changed, 12 insertions, 12 deletions
diff --git a/src/passwordmaker/base_conversion/iterative_conversion_impl/mod.rs b/src/passwordmaker/base_conversion/iterative_conversion_impl/mod.rs
index 3d5351a..b805272 100644
--- a/src/passwordmaker/base_conversion/iterative_conversion_impl/mod.rs
+++ b/src/passwordmaker/base_conversion/iterative_conversion_impl/mod.rs
@@ -476,7 +476,7 @@ impl<const N : usize> ArbitraryBytes<N>{
}
fn find_first_nonzero_digit(&self) -> usize{
- self.0.iter().enumerate().skip_while(|(_,v)| **v == 0).next().map(|(x,_)| x).unwrap_or(N)
+ self.0.iter().enumerate().find(|(_,v)| **v != 0).map_or(N,|(x,_)| x)
}
fn get_digit_from_right(&self, i : usize) -> u32{
@@ -504,7 +504,7 @@ impl<const N : usize> ArbitraryBytes<N>{
fn slice_overflowing_sub_assign(lhs : &mut [u32], rhs: &[u32]) -> bool{
debug_assert_eq!(lhs.len(), rhs.len());
lhs.iter_mut().zip(rhs.iter()).rev().fold(false,|carry,(a,b)| {
- let r = b.overflowing_add(carry as u32);
+ let r = b.overflowing_add(u32::from(carry));
let s = a.overflowing_sub(r.0);
*a = s.0;
r.1 || s.1
@@ -514,7 +514,7 @@ fn slice_overflowing_sub_assign(lhs : &mut [u32], rhs: &[u32]) -> bool{
fn slice_overflowing_add_assign(lhs : &mut [u32], rhs : &[u32]) -> bool {
debug_assert_eq!(lhs.len(), rhs.len());
lhs.iter_mut().zip(rhs.iter()).rev().fold(false, |carry, (a, b)| {
- let r = b.overflowing_add(carry as u32);
+ let r = b.overflowing_add(u32::from(carry));
let s = a.overflowing_add(r.0);
*a = s.0;
r.1 || s.1
@@ -522,8 +522,8 @@ fn slice_overflowing_add_assign(lhs : &mut [u32], rhs : &[u32]) -> bool {
}
fn u64_from_u32s(m : u32, l : u32) -> u64{
- let m = m as u64;
- let l = l as u64;
+ let m = u64::from(m);
+ let l = u64::from(l);
(m << 32) | l
}
diff --git a/src/passwordmaker/base_conversion/iterative_conversion_impl/precomputed_constants.rs b/src/passwordmaker/base_conversion/iterative_conversion_impl/precomputed_constants.rs
index e845176..1127692 100644
--- a/src/passwordmaker/base_conversion/iterative_conversion_impl/precomputed_constants.rs
+++ b/src/passwordmaker/base_conversion/iterative_conversion_impl/precomputed_constants.rs
@@ -4,17 +4,17 @@ use super::super::iterative_conversion::PrecomputedMaxPowers;
impl PrecomputedMaxPowers<usize> for ArbitraryBytes<5>{
fn lookup(base : &usize) -> Option<(Self, usize)> {
- get_from_cache(base, &CONSTANT_MAX_POWER_CACHE_5)
+ get_from_cache(*base, &CONSTANT_MAX_POWER_CACHE_5)
}
}
impl PrecomputedMaxPowers<usize> for ArbitraryBytes<8>{
fn lookup(base : &usize) -> Option<(Self, usize)> {
- get_from_cache(base, &CONSTANT_MAX_POWER_CACHE_8)
+ get_from_cache(*base, &CONSTANT_MAX_POWER_CACHE_8)
}
}
-fn get_from_cache<const N : usize>(base : &usize, cache : &[([u32;N], usize)]) -> Option<(ArbitraryBytes<N>, usize)>{
+fn get_from_cache<const N : usize>(base : usize, cache : &[([u32;N], usize)]) -> Option<(ArbitraryBytes<N>, usize)>{
base.checked_sub(2).and_then(|idx|cache.get(idx))
.map(|c| (ArbitraryBytes(c.0), c.1))
}
@@ -24,9 +24,9 @@ const CONSTANT_MAX_POWER_CACHE_8 : [([u32;8],usize);128] = gen_const_max_power_c
//-----------------------------------------------------------------------------------------
-/// This version of find_highest_fitting_power is not optimized. But it can run in const contexts. Only use it there, use the normal one everywhere else.
+/// This version of `find_highest_fitting_power` is not optimized. But it can run in const contexts. Only use it there, use the normal one everywhere else.
const fn const_find_highest_fitting_power<const N : usize>(base : usize) -> ([u32;N],usize){
- let start = super::from_usize(&base);
+ let start = super::from_usize(base);
let mut x = (start, 1);
while let Some(next) = const_mul_usize(const_clone(&x.0),base) {
@@ -81,7 +81,7 @@ mod iterative_conversion_constants_tests{
for (base, mut power, exponent) in entries {
//exponent is the largest fitting exponent. Soo, if we divide exponent times, we should end up with 1.
for _i in 0..exponent {
- let remainder = power.div_assign_with_remainder_usize(&base);
+ let remainder = power.div_assign_with_remainder_usize(base);
assert_eq!(remainder, 0);
}
assert_eq!(power, (&1usize).into());
@@ -95,7 +95,7 @@ mod iterative_conversion_constants_tests{
for (base, mut power, exponent) in entries {
//exponent is the largest fitting exponent. Soo, if we divide exponent times, we should end up with 1.
for _i in 0..exponent {
- let remainder = power.div_assign_with_remainder_usize(&base);
+ let remainder = power.div_assign_with_remainder_usize(base);
assert_eq!(remainder, 0);
}
assert_eq!(power, (&1usize).into());