aboutsummaryrefslogtreecommitdiff
path: root/src/imap/index.rs
diff options
context:
space:
mode:
authorQuentin Dufour <quentin@deuxfleurs.fr>2024-01-08 14:02:52 +0100
committerQuentin Dufour <quentin@deuxfleurs.fr>2024-01-08 14:02:52 +0100
commit4d1ec3333404de92be98f80239fc5175decc0d4b (patch)
tree445e4b6de66c42700ad2bac4caf566d839ddcc17 /src/imap/index.rs
parentb8b9e20ac05e60b3bd156ff8f995ae74ae9222f2 (diff)
downloadaerogramme-4d1ec3333404de92be98f80239fc5175decc0d4b.tar.gz
aerogramme-4d1ec3333404de92be98f80239fc5175decc0d4b.zip
Make sure empty mailbox can be fetched/searched
Required by a client (either GMail for Android, Outlook for iPhone, or Huawei Email)
Diffstat (limited to 'src/imap/index.rs')
-rw-r--r--src/imap/index.rs11
1 files changed, 5 insertions, 6 deletions
diff --git a/src/imap/index.rs b/src/imap/index.rs
index 3ca5562..fbd871a 100644
--- a/src/imap/index.rs
+++ b/src/imap/index.rs
@@ -1,6 +1,6 @@
use std::num::NonZeroU32;
-use anyhow::{anyhow, Context, Result};
+use anyhow::{anyhow, Result};
use imap_codec::imap_types::sequence::{self, SeqOrUid, Sequence, SequenceSet};
use crate::mail::uidindex::{ImapUid, UidIndex};
@@ -80,10 +80,6 @@ impl<'a> Index<'a> {
.partition_point(|mail_idx| &mail_idx.uid < start_seq);
&self.imap_index[start_idx..]
};
- println!(
- "win: {:?}",
- imap_idx.iter().map(|midx| midx.uid).collect::<Vec<_>>()
- );
let mut acc = vec![];
for wanted_uid in unroll_seq.iter() {
@@ -104,8 +100,11 @@ impl<'a> Index<'a> {
}
pub fn fetch_on_id(&'a self, sequence_set: &SequenceSet) -> Result<Vec<&'a MailIndex<'a>>> {
+ if self.imap_index.is_empty() {
+ return Ok(vec![]);
+ }
let iter_strat = sequence::Strategy::Naive {
- largest: self.last().context("The mailbox is empty")?.uid,
+ largest: self.last().expect("The mailbox is empty").uid,
};
sequence_set
.iter(iter_strat)