[refactor] Refactor Option/Result combinators (#3180)

Code simplifications using `Option`/`Result` combinators to make pattern-matches a tad simpler. 
Opinions on these loosely held, happy to adjust in review.

Tool-aided by [comby-rust](https://github.com/huitseeker/comby-rust).
This commit is contained in:
François Garillot
2022-05-16 01:59:47 +00:00
parent e81a428ffb
commit 3f9e83e840
5 changed files with 19 additions and 26 deletions

View File

@@ -646,17 +646,18 @@ async fn poll_beacon_attesters_for_epoch<T: SlotClock + 'static, E: EthSpec>(
response
.data
.into_iter()
.filter(|duty| local_pubkeys.contains(&duty.pubkey))
.filter(|duty| {
// Only update the duties if either is true:
//
// - There were no known duties for this epoch.
// - The dependent root has changed, signalling a re-org.
attesters.get(&duty.pubkey).map_or(true, |duties| {
duties
.get(&epoch)
.map_or(true, |(prior, _)| *prior != dependent_root)
})
local_pubkeys.contains(&duty.pubkey) && {
// Only update the duties if either is true:
//
// - There were no known duties for this epoch.
// - The dependent root has changed, signalling a re-org.
attesters.get(&duty.pubkey).map_or(true, |duties| {
duties
.get(&epoch)
.map_or(true, |(prior, _)| *prior != dependent_root)
})
}
})
.collect::<Vec<_>>()
};

View File

@@ -983,8 +983,7 @@ fn delete_concurrent_with_signing() {
for interchange in collected_slashing_protection
.into_iter()
.map(Result::unwrap)
.flatten()
.flat_map(Result::unwrap)
{
for validator_data in interchange.data {
slashing_protection_map