Fix clippy::unnecessary_wraps warnings

This lint is enabled by default in 1.50 toolchain.
This commit is contained in:
link2xt
2021-02-24 23:56:03 +03:00
committed by link2xt
parent 38169b2aad
commit f8755b505e
2 changed files with 22 additions and 33 deletions

View File

@@ -167,12 +167,7 @@ pub(crate) async fn dc_receive_imf_inner(
// missing Message-IDs may come if the mail was set from this account with another // missing Message-IDs may come if the mail was set from this account with another
// client that relies in the SMTP server to generate one. // client that relies in the SMTP server to generate one.
// true eg. for the Webmailer used in all-inkl-KAS // true eg. for the Webmailer used in all-inkl-KAS
match dc_create_incoming_rfc724_mid(sent_timestamp, from_id, &to_ids) { dc_create_incoming_rfc724_mid(sent_timestamp, from_id, &to_ids)
Some(x) => x,
None => {
bail!("No Message-Id found and could not create incoming rfc724_mid");
}
}
} }
}; };
if mime_parser.parts.last().is_some() { if mime_parser.parts.last().is_some() {
@@ -1897,11 +1892,9 @@ async fn get_rfc724_mid_in_list(context: &Context, mid_list: &str) -> Result<Opt
return Ok(None); return Ok(None);
} }
if let Ok(ids) = parse_message_ids(mid_list) { for id in parse_message_ids(mid_list).iter().rev() {
for id in ids.iter().rev() { if let Some((_, _, msg_id)) = rfc724_mid_exists(context, id).await? {
if let Some((_, _, msg_id)) = rfc724_mid_exists(context, id).await? { return Ok(Some(Message::load_from_db(context, msg_id).await?));
return Ok(Some(Message::load_from_db(context, msg_id).await?));
}
} }
} }
@@ -1998,16 +1991,15 @@ fn dc_create_incoming_rfc724_mid(
message_timestamp: i64, message_timestamp: i64,
contact_id_from: u32, contact_id_from: u32,
contact_ids_to: &ContactIds, contact_ids_to: &ContactIds,
) -> Option<String> { ) -> String {
/* create a deterministic rfc724_mid from input such that /* create a deterministic rfc724_mid from input such that
repeatedly calling it with the same input results in the same Message-id */ repeatedly calling it with the same input results in the same Message-id */
let largest_id_to = contact_ids_to.iter().max().copied().unwrap_or_default(); let largest_id_to = contact_ids_to.iter().max().copied().unwrap_or_default();
let result = format!( format!(
"{}-{}-{}@stub", "{}-{}-{}@stub",
message_timestamp, contact_id_from, largest_id_to message_timestamp, contact_id_from, largest_id_to
); )
Some(result)
} }
#[cfg(test)] #[cfg(test)]
@@ -2070,18 +2062,18 @@ mod tests {
let mut members = ContactIds::new(); let mut members = ContactIds::new();
assert_eq!( assert_eq!(
dc_create_incoming_rfc724_mid(123, 45, &members), dc_create_incoming_rfc724_mid(123, 45, &members),
Some("123-45-0@stub".into()) "123-45-0@stub"
); );
members.insert(7); members.insert(7);
members.insert(3); members.insert(3);
assert_eq!( assert_eq!(
dc_create_incoming_rfc724_mid(123, 45, &members), dc_create_incoming_rfc724_mid(123, 45, &members),
Some("123-45-7@stub".into()) "123-45-7@stub"
); );
members.insert(9); members.insert(9);
assert_eq!( assert_eq!(
dc_create_incoming_rfc724_mid(123, 45, &members), dc_create_incoming_rfc724_mid(123, 45, &members),
Some("123-45-9@stub".into()) "123-45-9@stub"
); );
} }

View File

@@ -260,7 +260,7 @@ impl MimeMessage {
parser.parse_mime_recursive(context, &mail).await?; parser.parse_mime_recursive(context, &mail).await?;
parser.maybe_remove_bad_parts(); parser.maybe_remove_bad_parts();
parser.heuristically_parse_ndn(context).await; parser.heuristically_parse_ndn(context).await;
parser.parse_headers(context)?; parser.parse_headers(context);
if warn_empty_signature && parser.signatures.is_empty() { if warn_empty_signature && parser.signatures.is_empty() {
for part in parser.parts.iter_mut() { for part in parser.parts.iter_mut() {
@@ -276,7 +276,7 @@ impl MimeMessage {
} }
/// Parses system messages. /// Parses system messages.
fn parse_system_message_headers(&mut self, context: &Context) -> Result<()> { fn parse_system_message_headers(&mut self, context: &Context) {
if self.get(HeaderDef::AutocryptSetupMessage).is_some() { if self.get(HeaderDef::AutocryptSetupMessage).is_some() {
self.parts = self self.parts = self
.parts .parts
@@ -304,7 +304,6 @@ impl MimeMessage {
self.is_system_message = SystemMessage::ChatProtectionDisabled; self.is_system_message = SystemMessage::ChatProtectionDisabled;
} }
} }
Ok(())
} }
/// Parses avatar action headers. /// Parses avatar action headers.
@@ -404,8 +403,8 @@ impl MimeMessage {
} }
} }
fn parse_headers(&mut self, context: &Context) -> Result<()> { fn parse_headers(&mut self, context: &Context) {
self.parse_system_message_headers(context)?; self.parse_system_message_headers(context);
self.parse_avatar_headers(); self.parse_avatar_headers();
self.parse_videochat_headers(); self.parse_videochat_headers();
self.squash_attachment_parts(); self.squash_attachment_parts();
@@ -481,8 +480,6 @@ impl MimeMessage {
self.parts.push(part); self.parts.push(part);
} }
Ok(())
} }
fn avatar_action_from_header(&mut self, header_value: String) -> Option<AvatarAction> { fn avatar_action_from_header(&mut self, header_value: String) -> Option<AvatarAction> {
@@ -1236,7 +1233,7 @@ pub(crate) struct FailureReport {
} }
#[allow(clippy::indexing_slicing)] #[allow(clippy::indexing_slicing)]
pub(crate) fn parse_message_ids(ids: &str) -> Result<Vec<String>> { pub(crate) fn parse_message_ids(ids: &str) -> Vec<String> {
// take care with mailparse::msgidparse() that is pretty untolerant eg. wrt missing `<` or `>` // take care with mailparse::msgidparse() that is pretty untolerant eg. wrt missing `<` or `>`
let mut msgids = Vec::new(); let mut msgids = Vec::new();
for id in ids.split_whitespace() { for id in ids.split_whitespace() {
@@ -1251,11 +1248,11 @@ pub(crate) fn parse_message_ids(ids: &str) -> Result<Vec<String>> {
msgids.push(id); msgids.push(id);
} }
} }
Ok(msgids) msgids
} }
pub(crate) fn parse_message_id(ids: &str) -> Result<String> { pub(crate) fn parse_message_id(ids: &str) -> Result<String> {
if let Some(id) = parse_message_ids(ids)?.first() { if let Some(id) = parse_message_ids(ids).first() {
Ok(id.to_string()) Ok(id.to_string())
} else { } else {
bail!("could not parse message_id: {}", ids); bail!("could not parse message_id: {}", ids);
@@ -2507,23 +2504,23 @@ CWt6wx7fiLp0qS9RrX75g6Gqw7nfCs6EcBERcIPt7DTe8VStJwf3LWqVwxl4gQl46yhfoqwEO+I=
#[test] #[test]
fn test_parse_message_ids() { fn test_parse_message_ids() {
let test = parse_message_ids(" foo bar <foobar>").unwrap(); let test = parse_message_ids(" foo bar <foobar>");
assert_eq!(test.len(), 3); assert_eq!(test.len(), 3);
assert_eq!(test[0], "foo"); assert_eq!(test[0], "foo");
assert_eq!(test[1], "bar"); assert_eq!(test[1], "bar");
assert_eq!(test[2], "foobar"); assert_eq!(test[2], "foobar");
let test = parse_message_ids(" < foobar >").unwrap(); let test = parse_message_ids(" < foobar >");
assert_eq!(test.len(), 1); assert_eq!(test.len(), 1);
assert_eq!(test[0], "foobar"); assert_eq!(test[0], "foobar");
let test = parse_message_ids("").unwrap(); let test = parse_message_ids("");
assert!(test.is_empty()); assert!(test.is_empty());
let test = parse_message_ids(" ").unwrap(); let test = parse_message_ids(" ");
assert!(test.is_empty()); assert!(test.is_empty());
let test = parse_message_ids(" < ").unwrap(); let test = parse_message_ids(" < ");
assert!(test.is_empty()); assert!(test.is_empty());
} }