From debac0a1aa220732908690bf08e68236e016ffae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tom=C3=A1s=20Romero?= Date: Thu, 8 Oct 2026 13:24:22 +0000 Subject: [PATCH] perf: borrow thumbnail media checks --- src/attachment_controller.rs | 25 ++++++++++++------------- 1 file changed, 12 insertions(+), 13 deletions(-) diff --git a/src/attachment_controller.rs b/src/attachment_controller.rs index 4eae2a7c..8c981a1f 100644 --- a/src/attachment_controller.rs +++ b/src/attachment_controller.rs @@ -79,11 +79,12 @@ fn thumbnail_candidate(attachment: &flectar_mail_core::models::AttachmentMeta) - .split(';') .next() .unwrap_or("") - .trim() - .to_ascii_lowercase(); + .trim(); attachment.size.is_none_or(|size| size <= 4 * 1024 * 1024) - && media.starts_with("image/") - && media != "image/svg+xml" + && media + .get(..6) + .is_some_and(|prefix| prefix.eq_ignore_ascii_case("image/")) + && !media.eq_ignore_ascii_case("image/svg+xml") } fn attachment_rows( attachments: &[flectar_mail_core::models::AttachmentMeta], @@ -226,12 +227,11 @@ pub(crate) fn register( Arc, Result<(Vec, u32, u32), String>, )>(8); - let (thumbnail_job_sender, mut thumbnail_job_receiver) = - tokio::sync::mpsc::channel::<( - i32, - flectar_mail_core::models::AttachmentMeta, - Arc, - )>(8); + let (thumbnail_job_sender, mut thumbnail_job_receiver) = tokio::sync::mpsc::channel::<( + i32, + flectar_mail_core::models::AttachmentMeta, + Arc, + )>(8); let thumbnail_window = weak.clone(); runtime.handle().spawn(async move { while let Some((message, attachment, core)) = thumbnail_job_receiver.recv().await { @@ -260,9 +260,8 @@ pub(crate) fn register( { break; } - let _ = thumbnail_window.upgrade_in_event_loop(|app| { - app.global::().invoke_deliver() - }); + let _ = thumbnail_window + .upgrade_in_event_loop(|app| app.global::().invoke_deliver()); } }); let thumbnail_pending = Rc::new(RefCell::new(HashSet::<(usize, i32, i64)>::new()));