Eliminate redundant conversions to Option and usage of filter_map. Use flat_map directly instead.

Documentation:
- https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.filter_map
- https://doc.rust-lang.org/std/iter/trait.Iterator.html#method.flat_map

Additional Changes:
- Use point-less style and pass Email::try_from function directly to
  flat_map.
  flat_map passes uid to Email::try_from implicitly. That's why it's
  called point-less style. IMO it looks nicer!
This commit is contained in:
Zeke Fast
2025-04-29 01:05:52 +02:00
parent 51a66d643d
commit 0a829824dc

View File

@@ -296,7 +296,7 @@ pub trait Database<'a>: Sync + Send {
.userids()
.filter(|binding| !is_status_revoked(binding.revocation_status(&POLICY, None)))
.map(|binding| binding.userid())
.filter_map(|uid| Email::try_from(uid).ok())
.flat_map(Email::try_from)
.any(|unrevoked_email| &unrevoked_email == *email);
!has_unrevoked_userid
})
@@ -476,7 +476,7 @@ pub trait Database<'a>: Sync + Send {
.unwrap_or_default();
let published_emails_old: Vec<Email> = published_uids_old
.iter()
.filter_map(|uid| Email::try_from(uid).ok())
.flat_map(Email::try_from)
.collect();
// println!("publishing: {:?}", &uid_new);