From 427835d242aa1807d420ed05598cc3e655d6b2af Mon Sep 17 00:00:00 2001 From: Sunil Nimmagadda Date: Thu, 5 Jan 2023 16:03:05 +0530 Subject: Note about avoiding mutability. --- src/vrrpv2.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/vrrpv2.rs b/src/vrrpv2.rs index 0db2d7d..16bd74e 100644 --- a/src/vrrpv2.rs +++ b/src/vrrpv2.rs @@ -84,6 +84,12 @@ fn parse_auth_type(input: &[u8]) -> IResult<&[u8], VRRPv2AuthType> { // if let Some([b]) = chunks.remainder() { // sum += *b as u32 // } + +// Shadowing can be used to avoid `mut`... +// let sum =...; +// let sum = (sum & 0xffff) + (sum >> 16); +// let sum = (sum & 0xffff) + (sum >> 16); +// manually un-rolling while loop since it's needed atmost twice for an u32. fn validate_checksum(bytes: &[u8]) -> bool { let mut sum: u32 = bytes.chunks(2).fold(0, |acc: u32, x| { acc + u32::from(u16::from_ne_bytes(x.try_into().unwrap())) -- cgit v1.2.3