diff --git a/src/core/size_value.rs b/src/core/size_value.rs index 8ae0e03..de3bdfe 100644 --- a/src/core/size_value.rs +++ b/src/core/size_value.rs @@ -30,10 +30,7 @@ impl SizeValue { pub const fn mul(self, rhs: u64) -> Self { match self.get().checked_mul(rhs) { None => panic!("Overflow occurred while multiplying size values!"), - Some(val) => { - // SAFETY: This is safe since we checked for overflow - Self(unsafe { NonZeroU64::new_unchecked(val) }) - } + Some(val) => Self::new(val), } } } @@ -64,6 +61,12 @@ mod test { SizeValue::new(8).mul(u64::MAX); } + #[test] + #[should_panic] + fn mul_zero_panic() { + SizeValue::new(8).mul(0); + } + #[test] fn derived_traits() { let size = SizeValue::new(8);