perf: enable clippy::large_futures lint

Large size of Mimefactor.render() futures
increases the size of all callers
down to set_config() and background_fetch().
I also had to Box::pin one call to fetch_new_msg_batch
and one call to fetch_single_msg.
This commit is contained in:
link2xt
2026-04-14 10:20:45 +02:00
committed by l
parent 89e450894d
commit f766c11075
5 changed files with 9 additions and 12 deletions

View File

@@ -2779,15 +2779,13 @@ async fn render_mime_message_and_pre_message(
let mut mimefactory_post_msg = mimefactory.clone(); let mut mimefactory_post_msg = mimefactory.clone();
mimefactory_post_msg.set_as_post_message(); mimefactory_post_msg.set_as_post_message();
let rendered_msg = mimefactory_post_msg let rendered_msg = Box::pin(mimefactory_post_msg.render(context))
.render(context)
.await .await
.context("Failed to render post-message")?; .context("Failed to render post-message")?;
let mut mimefactory_pre_msg = mimefactory; let mut mimefactory_pre_msg = mimefactory;
mimefactory_pre_msg.set_as_pre_message_for(&rendered_msg); mimefactory_pre_msg.set_as_pre_message_for(&rendered_msg);
let rendered_pre_msg = mimefactory_pre_msg let rendered_pre_msg = Box::pin(mimefactory_pre_msg.render(context))
.render(context)
.await .await
.context("pre-message failed to render")?; .context("pre-message failed to render")?;
@@ -2802,7 +2800,7 @@ async fn render_mime_message_and_pre_message(
Ok((Some(rendered_pre_msg), rendered_msg)) Ok((Some(rendered_pre_msg), rendered_msg))
} else { } else {
Ok((None, mimefactory.render(context).await?)) Ok((None, Box::pin(mimefactory.render(context)).await?))
} }
} }

View File

@@ -173,9 +173,7 @@ pub(crate) async fn download_msg(
if msg_transport_id != transport_id { if msg_transport_id != transport_id {
return Ok(None); return Ok(None);
} }
session Box::pin(session.fetch_single_msg(context, &server_folder, server_uid, rfc724_mid)).await?;
.fetch_single_msg(context, &server_folder, server_uid, rfc724_mid)
.await?;
Ok(Some(())) Ok(Some(()))
} }

View File

@@ -589,9 +589,9 @@ impl Imap {
let mut read_cnt = 0; let mut read_cnt = 0;
loop { loop {
let (n, fetch_more) = self let (n, fetch_more) =
.fetch_new_msg_batch(context, session, folder, folder_meaning) Box::pin(self.fetch_new_msg_batch(context, session, folder, folder_meaning))
.await?; .await?;
read_cnt += n; read_cnt += n;
if !fetch_more { if !fetch_more {
return Ok(read_cnt > 0); return Ok(read_cnt > 0);

View File

@@ -17,6 +17,7 @@
clippy::cloned_instead_of_copied, clippy::cloned_instead_of_copied,
clippy::manual_is_variant_and clippy::manual_is_variant_and
)] )]
#![cfg_attr(not(test), warn(clippy::large_futures))]
#![cfg_attr(not(test), warn(clippy::arithmetic_side_effects))] #![cfg_attr(not(test), warn(clippy::arithmetic_side_effects))]
#![cfg_attr(not(test), forbid(clippy::indexing_slicing))] #![cfg_attr(not(test), forbid(clippy::indexing_slicing))]
#![cfg_attr(not(test), forbid(clippy::string_slice))] #![cfg_attr(not(test), forbid(clippy::string_slice))]

View File

@@ -580,7 +580,7 @@ async fn send_mdn_rfc724_mid(
) )
.await?; .await?;
let encrypted = mimefactory.will_be_encrypted(); let encrypted = mimefactory.will_be_encrypted();
let rendered_msg = mimefactory.render(context).await?; let rendered_msg = Box::pin(mimefactory.render(context)).await?;
let body = rendered_msg.message; let body = rendered_msg.message;
let mut recipients = Vec::new(); let mut recipients = Vec::new();