From 6c75a06b122d56ed9fa8ff1d2f99b304c5049723 Mon Sep 17 00:00:00 2001 From: Marc Hartmayer Date: Tue, 3 Dec 2024 15:43:50 +0100 Subject: [PATCH] pvattest: Use `map_or` and `map_or_else` MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Replace 'match .. { Some(v) => y, None/_ => x }' statements with 'Option::map_or_else' and 'Option::map_or'. See https://rust-lang.github.io/rust-clippy/master/index.html#option_if_let_else. Reviewed-by: Steffen Eiden Signed-off-by: Marc Hartmayer Signed-off-by: Jan Höppner --- rust/pvattest/src/cmd/check/firmware.rs | 7 +++---- rust/pvattest/src/exchange.rs | 28 ++++++++----------------- 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/rust/pvattest/src/cmd/check/firmware.rs b/rust/pvattest/src/cmd/check/firmware.rs index 81bceee2..97e434fd 100644 --- a/rust/pvattest/src/cmd/check/firmware.rs +++ b/rust/pvattest/src/cmd/check/firmware.rs @@ -56,10 +56,9 @@ impl Display for Response { if self.valid { "" } else { "not " } )?; - match &self.reason { - Some(r) => write!(f, "\n Reason: {r}\n ReferenceId: {}", self.reference_id), - None => Ok(()), - } + self.reason.as_ref().map_or(Ok(()), |r| { + write!(f, "\n Reason: {r}\n ReferenceId: {}", self.reference_id) + }) } } diff --git a/rust/pvattest/src/exchange.rs b/rust/pvattest/src/exchange.rs index 3bbff245..c6f9823c 100644 --- a/rust/pvattest/src/exchange.rs +++ b/rust/pvattest/src/exchange.rs @@ -37,27 +37,20 @@ impl Entry { /// /// panics if `val` is larger than `max_size` bytes fn from_slice(val: Option<&[u8]>, max_size: u32, offset: &mut u32) -> Self { - match val { - Some(val) => { - assert!(val.len() <= max_size as usize); - let size = val.len() as u32; - let res = Self::new(size, *offset); - *offset += size; - res - } - None => Self::default(), - } + val.map_or_else(Self::default, |val| { + assert!(val.len() <= max_size as usize); + let size = val.len() as u32; + let res = Self::new(size, *offset); + *offset += size; + res + }) } /// # Panic /// /// panics if `val` is larger than `max_size` bytes fn from_exp(val: Option) -> Self { - if let Some(val) = val { - Self::new(val, 0) - } else { - Self::default() - } + val.map_or_else(Self::default, |val| Self::new(val, 0)) } fn from_none() -> Self { @@ -239,10 +232,7 @@ impl ExpOrData { impl From> for ExpOrData { fn from(value: Option) -> Self { - match value { - Some(v) => Self::Exp(v), - None => Self::None, - } + value.map_or(Self::None, Self::Exp) } }