Improved the readability of the logic for managing mrsigners and mrenclaves by using if let to unwrap the option

This commit is contained in:
Noor 2024-10-10 20:19:50 +04:00 committed by Valentyn Faychuk
parent ddc34a5a10
commit 3e7ac4ee4d

@ -58,25 +58,22 @@ impl InstanceMeasurement {
pub fn with_current_mrsigner(self) -> Result<Self, RaTlsError> {
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)
}
}