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) } }