From 3e7ac4ee4d9fde65438b81907cc0bada8ff89472 Mon Sep 17 00:00:00 2001 From: Noor Date: Thu, 10 Oct 2024 20:19:50 +0400 Subject: [PATCH] Improved the readability of the logic for managing mrsigners and mrenclaves by using if let to unwrap the option --- src/config.rs | 45 ++++++++++++++++++++------------------------- 1 file changed, 20 insertions(+), 25 deletions(-) diff --git a/src/config.rs b/src/config.rs index 880fd83..9be8169 100644 --- a/src/config.rs +++ b/src/config.rs @@ -58,25 +58,22 @@ impl InstanceMeasurement { pub fn with_current_mrsigner(self) -> Result { let quote = Self::generate_static_empty_quote()?; - let mrsigner_from_quote = quote.mrsigner().into(); - if self.mrsigners.is_none() { + if let Some(mrsigners) = self.mrsigners { + if mrsigners.contains(&mrsigner_from_quote) { + // already contains the mrsigner + Ok(self) + } else { + let mut mrsigners = self.mrsigners.clone().unwrap(); + mrsigners.push(mrsigner_from_quote); + Ok(self.with_mrsigners(mrsigners)) + } + } else { Ok(Self { mrsigners: Some(vec![mrsigner_from_quote]), ..self }) - } else if !self - .mrsigners - .as_ref() - .unwrap() - .contains(&mrsigner_from_quote) - { - let mut mrsigners = self.mrsigners.clone().unwrap(); - mrsigners.push(mrsigner_from_quote); - Ok(self.with_mrsigners(mrsigners)) - } else { - Ok(self) } } @@ -84,22 +81,20 @@ impl InstanceMeasurement { let quote = Self::generate_static_empty_quote()?; let mrenclave_from_quote = quote.mrenclave().into(); - if self.mrenclaves.is_none() { + if let Some(mrenclaves) = self.mrenclaves { + if mrenclaves.contains(&mrenclave_from_quote) { + // already contains the mrenclave + Ok(self) + } else { + let mut mrenclaves = self.mrenclaves.clone().unwrap(); + mrenclaves.push(mrenclave_from_quote); + Ok(self.with_mrenclaves(mrenclaves)) + } + } else { Ok(Self { mrenclaves: Some(vec![mrenclave_from_quote]), ..self }) - } else if !self - .mrenclaves - .as_ref() - .unwrap() - .contains(&mrenclave_from_quote) - { - let mut mrenclaves = self.mrenclaves.clone().unwrap(); - mrenclaves.push(mrenclave_from_quote); - Ok(self.with_mrsigners(mrenclaves)) - } else { - Ok(self) } }